访问Access数据库(有多个数据库时 体现多态)

如果想编写单机版MIS、小型网站等对数据库性能要求不高的系统,又不想安装SQLServer,可以使用Access(MDAC),只要一个mdb文件就可以了。
使用Access创建mdb文件,建表。
OleDbConnection、OleDbCommand……,用法和SqlServer差不多。和SQLServer的区别:
一些复杂的SQL函数、语法Access不支持。
参数化查询不使用@name占位符,而是使用?,new OleDbParameter("?", guid.ToString(),要按照SQL语句中?的顺序添加OleDbParameter。
name和password都是保留字,最好不要用做列名,用的话加上[]

    string str = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
    string pName = ConfigurationManager.ConnectionStrings["connstr"].ProviderName;

    IDbConnection conn;
    if (pName == "SQLServer")
    {
      conn = new SqlConnection(str);
    }
    else if (pName == "Access")
    {
      conn = new OleDbConnection(str);
    }
    else
    {
      MessageBox.Show("无效的ProviderName!");
      return;
    }

    using (conn)    // 体现多态 ,谁也不知道conn是SQL的还是Access的
    {
      if (conn.State == ConnectionState.Closed)
      {
        conn.Open();
      }

      using (IDbCommand cmd = conn.CreateCommand())
      {
        cmd.CommandText = "Insert into T_Person(Name,Age) Values(‘" + txtName.Text + "‘," + Convert.ToInt32(txtAge.Text) + ")";
        if (Convert.ToInt32(cmd.ExecuteNonQuery()) > 0)
        {
          MessageBox.Show("增加成功!");
        }
      }
    }

时间: 2024-10-09 00:50:51

访问Access数据库(有多个数据库时 体现多态)的相关文章

使用c#访问Access数据库时,提示找不到可安装的 ISAM

使用c#访问Access数据库时,提示找不到可安装的 ISAM,如下图: 代码如下: connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.mdb;Pwd=abcd;"; conn = new OleDbConnection(connectionString); conn.Open(); DataTable dt = conn.GetSchema("Tables"); if (dt

ADO访问Access数据库错误解决

最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010; Access2000~Access2003连接串建立数据库连接. 关键数据库操作代码 BOOL CAccessDatabase::Query(const CString strSQLString, UINT nFieldNumber, vector<vector<_variant_t> >& vec

ADO访问Access数据库错误解决心得随笔

最近在用ADO访问Access数据库的时候出现了一个奇怪的错误,觉得有必要记录下来,和大家分享一下. 环境 win7 x86系统: VS2012编译器: Office2010: Access2000~Access2003连接串建立数据库连接. 关键数据库操作代码 BOOL CAccessDatabase::Query(const CString strSQLString, UINT nFieldNumber, vector<vector<_variant_t> >& vec

使用“忽略授权表”参数登录多实例数据库——用于多实例数据库忘记密码时登录

昨天上午,在视频"L10-008-lamp环境之MySQL多实例安装配置指南"马上就要结束的时候,再次遇到问题. 前天晚上,根据视频讲解在清理多余MySQL数据库账号后,就直接退出数据库并关机了(没有在清理账号后,退出数据库并重新登录数据库--其实,也没有必要做这样的测试).昨天早上打开虚拟机,想着完成视频的最后一小部分.没想到,在使用密码登录3306实例的时候,无论如何也登录不进去了. [[email protected] 3306]# mysql -uroot -p -S /dat

在access中如何创建数据库?你认为数据库在网站开发中所扮演的角色是什么?使用数据库和使用文件,两者的优缺点是是什么?

1.启动ACCESS建空数据库,给数据库取名"数据库名".2.建一个表,如果有excel数据可直接导入或在设计视图里面建表,如段名分别为:学号.姓名.性别.出生日期.家庭住址等.给表取名"表名".3.用数据表做数据源,建立需要的查询.一个简单的数据库就建成了.我认为数据库在网站开发中扮演者重要的角色,它掌管着大量的重要数据.它是网站开发的核心,也可以说它是一个默默无闻的工作者 数据库是用来存储数据的,其中分好多类,小型的有ACCESS,中型的有SQL SERVER,

SQL Server 因为数据库迁移导致用户登录时总是报 4052 ,15023 等错误。

因周未公司数据库迁移导致周一上班后,数据库连接不上问题,捣鼓老久,在网上度娘上总算找到问题点. 介绍一下sql server中“登录”与“用户”的区别,“登录”用于用户身份验证,而数据库“用户”帐户用于数据库访问和权限验证.登录通过安全识别符 (SID) 与用户关联.将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户.这种情况被称为存在“孤立用户”.此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题,因

mysql数据库设置密码及忘记密码时的修改方法

环境介绍:我用的测试环境是Red Hat linux6 版本安装Mysql5.7的server.之前有讲过mysql server安装过程并能用navicat工具连接上mysql server.下面要说的是如何给mysql设置账户密码登录.在刚安装服务时,我在/etc/my.cnf 配置文件中添加了一条 skip-grant-tables 让它可以不进行密码验证就能登录到mysql server上.下面介绍的内容是mysql数据库设置密码及忘记密码时的修改方法. 注:MySQL5.7在初始安装后

RadioButtonList 和CheckBoxList根据后天数据库的值加载时选中其选项

前台: <x:RadioButtonList ID="rbSex" Label="性别" runat="server"  >                                       <x:RadioItem Text="男" Value="男" Selected="true"  />                               

VS2010 根据模型生成数据库 打开edmx.sql文件时 vs出现无响应的解决方案

VS2010 根据模型生成数据库 打开edmx.sql文件时 vs出现无响应的解决方案   第七城市th7cn 今天在VS2010 sp1+sql server 2008 R2+Win7操作系统下测试ADO.NET 实体数据模型时 ,遇到这样一个问题. 首先建好实体模型,然后"根据模型生成数据库",也就是根据实体数据模型生成相应表结构,创建好连接字符串,在弹出的如图窗口后,点击“完成”按钮,程序会自动生成后缀为edmx.sql的文件,但是当打开这个文件时,vs2010出现无响应的情况,