访问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("增加成功!");
        }
      }
    }
复制代码

 

posted on 2017-05-11 21:01 叶祖辉 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yezuhui/p/6842755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值