您好,欢迎访问一九零五行业门户网

ADO.NET中的.NET数据提供者

ado.net 有两个重要组成部分,即dataset和.net数据提供者。在前几节的例子中,已经使用了dataset和sqldataadapter。可能读者对这些类还不熟悉,本文将进行详细介绍。 .net 数据提供对象分为三类,包括sql数据提供者、ole db数据提供者和odbc数据提供者。其中
ado.net有两个重要组成部分,即dataset和.net数据提供者。在前几节的例子中,已经使用了dataset和sqldataadapter。可能读者对这些类还不熟悉,本文将进行详细介绍。
.net数据提供对象分为三类,包括sql数据提供者、ole db数据提供者和odbc数据提供者。其中sql数据提供者仅支持sql server7.0及更高版本,ole db数据提供者支持access、oracle和sql server等,odbc数据提供者支持的类型较多,分别包括access、oracle、sql server、mysql和vfp(visual foxpro)等。
在.net数据提供者中定义的对象,前面必须带有该提供者的标志。如上一节使用的sqldataadapter,因为它定义在sql数据提供者内,所以要加前缀sql。在另两个数据提供者内一般加前缀oledb和odbc。
.net数据提供者的对象包括connection、command、commandbuilder、datareader和dataadapter。
下面通过例子对以上对象进行说明。
(1)打开vs2008,在d:\c#\ch14目录下建立名为providertest的windows应用程序。
(2)打开工程,为当前窗体添加一个textbox和一个非类型化的dataset。从工具箱中直接将dataset拖入当前窗体。
(3)本例主要通过代码方式将数据库中的数据写入到dataset,然后再从dataset中表的列名导出。这需要引入两个命名空间system.data和system.data.sqlclient。接着为当前窗体的load事件添加如下代码。
sqlconnection sc = new sqlconnection(@data source=(local);integrated security=sspi;+initial catalog=studentinf);
sc.open();
sqlcommand cmd = new sqlcommand();
cmd.commandtext = select name,sex,age from class1;
cmd.commandtype = commandtype.text;
cmd.connection = sc;
sqldataadapter sd = new sqldataadapter();
sd.selectcommand = cmd;
sd.fill(this.dataset1);
textbox1.text = this.dataset1.tables[0].columns[0].columnname;
sc.close();
本例仍然采用本章前面自建的数据库studentinf,先将它的前三列数据填充到dataset1中,再从其中读出第一列的列名。
下面进行代码解释。
第一个需要解释的是连接对象sqlconnection,它包含在system.data.sqlclient命名空间中,它提供了到数据源的连接及相关连接细节,创建语法如下所示。
sqlconnection sc = new sqlconnection(@data source=(local);integrated security=sspi;+initial catalog= studentinf);
sc.open();
data source是指访问的sql server的名称,如果sql server运行在本机上,直接用local即可。integrated security是指登录到数据库时采用内置集成安全,这样可以省去用户名和密码。sspi全称为security support provider interface,它用于指定邓录数据库时的安全类型。initial catalog表示需要登录的数据库名。
建立完连接对象,还需要对它进行打开,这里选择sqlconnection的open()方法。
建立并打开连接对象以后,下面要做的工作是可能是查询、修改或删除数据库中的内容。显然这里需要sql命令,这也就是sqlcommand对象所要完成的事情,如下所示。
sqlcommand cmd = new sqlcommand();
cmd.commandtext = select name,sex,age from class1;
cmd.commandtype = commandtype.text;
cmd.connection = sc;
commandtext是指获取或设置对数据源执行的transact-sql语句。
select name,sex,age from class1
表示从表class1中选择name、sex和age 三列数据。commandtype用于解释commandtext的类型,它有三个选择项,包括storedprocedure(存储过程的名称)、tabledirect(表的名称)和text(sql文本命令)。最后还需要将该命令对象关联到打开的数据连接。
其它类似信息

推荐信息