zoukankan      html  css  js  c++  java
  • 访问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("增加成功!");
            }
          }
        }
  • 相关阅读:
    HDOJ1267 下沙的沙子2[DP或卡特兰数]
    HDOJ1711 Number Sequence[KMP模版]
    HDOJ2546 饭卡[DP01背包问题]
    寻找必败态——一类博弈问题的快速解法
    kmp 模版
    网络流题目
    HDOJ1261 字串数[组合+大数]
    传说中效率最高的最大流算法(Dinic) [转]
    ACM博弈论
    HDOJ1061 Rightmost Digit[简单数学题]
  • 原文地址:https://www.cnblogs.com/xgao/p/4135225.html
Copyright © 2011-2022 走看看