sqlhelper

来源:互联网 发布:可以画画的软件 编辑:程序博客网 时间:2024/06/07 06:18

     ASqlConnection对象表示到唯一的会话SQL Server数据源。 使用客户端/服务器数据库系统,它相当于网络连接到服务器。SqlConnection使用连同SqlDataAdapterSqlCommand来提高性能时连接到 MicrosoftSQLServer数据库。 为所有第三方SQL Server产品和其他支持 OLE DB 的数据源,则使用OleDbConnection

包含 Command 对象的所有 Parameter 对象。

说明

   Command 对象具有由 Parameter 对象组成的 Parameters 集合。

使用 Command 对象的 Parameters 集合上的 Refresh 方法,可以获取有关 Command 对象中指定的存储过程参数化查询的提供者的参数信息。某些提供者不支持存储过程进行调用或参数化查询,使用这样的提供者时调用 Parameters 集合上的 Refresh 方法将返回错误。

如果调用 Refresh 方法前没有定义自己的 Parameter 对象而访问 Parameters 集合,ADO 将自动调用方法并填充该集合。

如果知道与要调用的存储过程参数化查询相关联的参数的属性,可以最小化对提供者的调用以提高性能。使用 CreateParameter 方法可以创建具有适当属性设置的 Parameters 对象,使用 Append 方法可以将其添加到 Parameters 集合。这将允许您设置并返回参数值而不必调用参数信息的提供者。如果正在写入不提供参数信息的提供者,则必须使用此方法手工填充 Parameters 集合才能使用参数。如果必要可以使用 Delete 方法将Parameters 对象从 Parameters 集合中删除。

cmd.ExecuteNonQuery()对象是对insert,update,delete语句返回受影响的行数,如:delete from tablename

cmd.cmd.ExecuteScalar()对象是对select语句返回统计结果数,如:select count(*)from tablename

cmd.ExecuteReader()对象是对select语句返回单条数据信息,如:select * fromtablename where id='1'

同样也可以通过实例化SqlDataAdapter,返回dataset/datatable ,如:select * form tablename

DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。

每一个Command都是一个独立的Command对象。也就是都有自己的ConnectionCommandText
  
     DataAdapter的所有工作都会落实到一个Command上,比如查询就用SelectCommand。如果SelectCommand没有配置好,就不能执行这个工作。

       
相应的,如果要执行Update方法,就必须配置好UpdateCommand。而我们通常的定义中(如:OleDbDataAdapter  da=new   OleDbDataAdapter( "Select   *  From   Authors ",conn);)都只是配置了SelectCommand,所以这时DataAdapter只能执行查询工作,而不能执行Update

       
要让DataAdapter执行Update,当然就必须配置好UpdateCommand。但是这个CommandCommandText相当复杂(如果有N个字段的话,就有2*N+1个参数),如果要我们手工去配置,那简直就是不可能的。所以.NET为我们提供那一个自动配置其Command的工具CommandBuilder。用这个Class,我们就能把DataAdapter的所有Command配置好,从而使它能执行这些操作。

 
      CommandBuilder也有两种:OleDbCommandBuilderSqlCommandBuilder。分别对应OleDbSQL  Server

1 0
原创粉丝点击