sqlconnection,sqlcommand,SqlDataAdapter ,ExecuteNonQuery,ExecuteScalar
sqlconnection:表示 SQL Server 数据库的一个打开的连接。SqlConnection 对象表示与 SQL Server 数据源的一个唯一的会话。 在客户端/服务器数据库系统中,它等效于一个到服务器的网络连接。 SqlConnection 与 SqlDataAdapter 和 SqlCommand 一起使用,以便在连接到 Microsoft SQL Server 数据库时提高性能。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection
sqlcommand:表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 此类不能被继承。当创建 SqlCommand 的实例时,读/写属性将被设置为它们的初始值。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.aspx
SqlDataAdapter :表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。 此类不能被继承。 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。 SqlDataAdapter 通过对数据源使用适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet 中的数据)来提供这一桥接。 更新是逐行进行的。 对于每个已插入、修改和删除的行,Update 方法会确定已对其执行的更改的类型(Insert、Update 或 Delete)。 根据更改类型,执行 Insert、Update 或 Delete 命令模板将已修改的行传播给数据源。 当 SqlDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。 但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。 也可以使用 FillSchema,让 SqlDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter.aspx
ExecuteNonQuery:主 要用于更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们 平时的思维方式有点差距所以应该好好的注意了,例如对数据库共添加一个数据表的Create操作,当创建数据表成功时返回-1,如果操作失败的话(如数据表已经存在)往往会发生异常,所以执行这种操作时最好用try--catch--语句来容错
SqlDataReader:提供一种从 SQL Server 数据库读取行的只进流的方式。此类不能被继承
若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数。
在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 服务,对 SqlConnection 无法执行任何其他操作,只能将其关闭。 除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。 例如,在调用 Close 之前,无法检索输出参数。
SqlDataReader 的用户可能会看到在读取数据时另一进程或线程对结果集所做的更改。 但是,确切的行为与执行时间有关。
当 SqlDataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。 尽管当 SqlDataReader 存在时可以访问 RecordsAffected 属性,但是请始终在返回 RecordsAffected 的值之前调用 Close,以保证返回精确的值。
ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行的第一列。
使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。 与使用 ExecuteReader 方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。