各位老师 最近看了很多的列子 他们引用连接语句的类都不相同 有用System.Data.Common的 还有用System.Data.Odbc的 还有用System.Data.SqlClient等等
请问各位老师 那种引用会更好点 我用的库是sql2005 如果写连接要引用那个?  

解决方案 »

  1.   

    sql2005的当然是System.Data.SqlClient
      

  2.   

    一般连接数据库进行操作的类都封装在数据库层。即DAL 层。你的数据库是SQL 2005的话,就引用System.Data.SqlClitent命名空间的咯
      

  3.   

    /// <summary>
        /// 获取所有用户信息
        /// </summary>
        /// <returns></returns>
        public DataTable GetAllUser()
        {
            //初始化Connection对象
            SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MSSQL"].ConnectionString);
            //初始化Command对象
            SqlCommand command = new SqlCommand("SELECT * FROM [UserInfo]", connection);
            //初始化Adapter对象
            SqlDataAdapter adapter = new SqlDataAdapter();
            //设置Adapter对象的SelectCommand属性
            adapter.SelectCommand = command;
            //初始化DataTable对象用以保存数据
            DataTable data = new DataTable();
            //填充DataTable
            adapter.Fill(data);
            return data;
        }ADO.NET用于访问SQL数据库的一套类库:SqlConnection,SqlCommand,SqlDataAdapter还有SqlDataReader。
      

  4.   

    上面的实例就是把对数据库的访问封装成方法的示例,如果我们需要从数据库查询,利用这个方法,传给它一个SQl语句就可以了。不用每次都写连接数据库的代码。
      

  5.   

    谢谢大家了 最近看的例子都是引用的System.Data.Common 然后在Db里引用System.Data.SqlClient 感觉上满怪异的 不知道这么写有什么好处吗?
    就比如:
     public bool HasName(string strSql)
        {
            string strConn = "Data Source=ADIR;Initial Catalog=shop;User ID=sa;Password=93626wenbo";
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
            DbConnection dbConn = dbProviderFactory.CreateConnection();
            dbConn.ConnectionString = strConn;
            dbConn.Open();
            DbCommand dbComm = dbProviderFactory.CreateCommand();
            dbComm.Connection = dbConn;
            dbComm.CommandText = strSql;
            DbDataReader reader = dbComm.ExecuteReader();
            return reader.Read();
        }
        public void ExcuteSql(string strSql)
        {
            string strConn = "Data Source=ADIR;Initial Catalog=shop;User ID=sa;Password=93626wenbo";
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
            DbConnection dbConn = dbProviderFactory.CreateConnection();
            dbConn.ConnectionString = strConn;
            dbConn.Open();
            DbCommand dbComm = dbProviderFactory.CreateCommand();
            dbComm.Connection = dbConn;
            dbComm.CommandText = strSql;
            dbComm.ExecuteNonQuery();
            dbConn.Close();
            dbConn.Dispose();
        }
        public DataTable ExcuteSelect(string strSql)
        {
            string strConn = "Data Source=ADIR;Initial Catalog=shop;User ID=sa;Password=93626wenbo";
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
            DbConnection dbConn = dbProviderFactory.CreateConnection();
            dbConn.ConnectionString = strConn;
            dbConn.Open();
            DbCommand dbComm = dbProviderFactory.CreateCommand();
            dbComm.Connection = dbConn;
            dbComm.CommandText = strSql;
            DbDataAdapter adapter = dbProviderFactory.CreateDataAdapter();
            adapter.SelectCommand = dbComm;
            DataSet dsDataSet = new DataSet();
            adapter.Fill(dsDataSet,"table");
            return dsDataSet.Tables["table"];
        }
    如果要是用SqlClient写要怎么去写 还有这么写有什么坏处吗?