SqlDataAdapter da = new SqlDataAdapter(SqlCmdStr, conn);
SqlCommand cmd = new SqlCommand(SqlCmdStr, conn);
SqlDataReader dr = cmd.ExecuteReader();
在好多和数据连接时,都出现过上面的语句,现在也用了很多,从但是只是用,
根本没有理解这些东东倒底是干嘛用,望高手们指点一下,给出它们的区别!

解决方案 »

  1.   

    SqlDataAdapter 类  
    表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。无法继承此类SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 SqlDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见 向 DataSet 添加现有约束。SqlDataAdapter 与 SqlConnection 和 SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能。SqlDataAdapter 还包括 SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 TableMappings 属性,以便于数据的加载和更新。当创建 SqlDataAdapter 的实例时,读/写属性将被设置为初始值。有关这些值的列表,请参见 SqlDataAdapter 构造函数。====================================================================================
    SqlCommand 类  
    表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。无法继承此类。 
    当创建 SqlCommand 的实例时,读/写属性将被设置为它们的初始值。有关这些值的列表,请参见 SqlCommand 构造函数
    您可以重置 CommandText 属性并重复使用 SqlCommand 对象。但是,在执行新的命令或先前命令之前,必须关闭 SqlDataReader。如果执行 SqlCommand 的方法生成 SqlException,那么当严重级别小于等于 19 时,SqlConnection 将仍保持打开状态。当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。
      

  2.   

    简单点说SqlDataAdapter 就是数据集(dataset|dataTable等)与数据库之间的通路.数据从数据集到数据库或从数据库到数据集都要通过SqlDataAdapter 才能实现.SqlCommand就是告诉这些数据在这条路上该怎么走?是select,update,insert还是delete?
      

  3.   

    SqlDataAdapter 将数据库和你的应用之间数据的桥梁。具体事通过SqlCommand 来实现的。
      

  4.   

    DataAdapter的作用是用来适配不同的DataSet和不同的数据库系统和协议.
    因为DataSet和任何的数据库系统不相关,所以它必须需要某种机制来对不同的数据库系统和协议进行适配.
    比如;SqlDataAdapter用于适配SqlServer数据库,OleDbDataAdapter适配OleDb, OdbcDataAdapter适配ODBC.Command是用来向数据库系统发送SQL命令的.对于不同的数据库和协议使用不同的Command对象.比如;:sqlCommand,OleDbComamnd, OdbcCommand