0、数据提供程序概述

(2)ADO.NET关键点---数据提供程序//使用构造器的最简单方法。
(2)ADO.NET关键点---数据提供程序

(2)ADO.NET关键点---数据提供程序SqlConnection sqlConn 
= new SqlConnection("strConn");
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序SqlCommand sqlCmd 
= new SqlCommand(strSql,sqlConn);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序sqlCmd.CommandType 
= (存储过程)
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序SqlDataAdapter da 
= new SqlDataAdapter(strSql,SqlConn);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序da.Fill(ds,
"Employee");
(2)ADO.NET关键点---数据提供程序

首先介绍数据提供程序的四个核心类:

1、Connection 

  SQL Server常用数据库链接字串:

标准连接1

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

标准连接2

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

信任连接1

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

信任连接2

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

 


更多连接字串请查询此网站
 http://www.connectionstrings.com/

指定数据库地址:

指定特定实例:serverName"instanceName
指定IP需写端口:190.190.200.100,1433;
例子:192.168.0.6"sqlexpress,1433

2、Command

Command类的RUID的操作:

方法名

说明

ExecuteReader()  

有一个可选参数是 CommandBehavior枚举集合中的一个

ExecuteNonQuery()

返回命令所影响的行数。

ExecuteScalar()

返回第一行的第一列或者聚合值。

ExecuteXmlReader()

仅对sqlcommand类可用,Command的Sql命令应包含For XML子句

使用存储过程插入的例子:

(2)ADO.NET关键点---数据提供程序sqlCommand.CommandText = "ProcedureName";
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序sqlCommand.CommandType 
= System.Data.CommandType.StoredProcedure;
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序sqlCommand.Parameters.Add(
"@name",SqlDbType.VarChar,10);   //为Command添加参数
(2)ADO.NET关键点---数据提供程序

(2)ADO.NET关键点---数据提供程序sqlCommand.Parameters[
0].Value = "Andymore";   //给调用的存储过程变量传递值
(2)ADO.NET关键点---数据提供程序

(2)ADO.NET关键点---数据提供程序Conn.Open();
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序SqlCommand.ExecuteNoQuery();
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序Conn.Close();
(2)ADO.NET关键点---数据提供程序

 

使用ExecuteXmlReader()方法和XmlReader的例子:

(2)ADO.NET关键点---数据提供程序cmd.CommandText = "Select * From table For XML Auto,XMLData";
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序XmlReader reader 
= cmd.ExecuteXmlReader();
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序While(reader.Read())
(2)ADO.NET关键点---数据提供程序

 

3、DataReader

Read方法使Reader前进到下一个记录,当有多个结果集时用分号分割各select语句,并使用NextResult方法访问下一个结果集,这样可节省与数据库的链接次数。

访问记录中的字段有两种方法:

1Item属性 (直接获取索引指定的条目)
2GetXXX方法(该方法根据后缀自动转换类型)如myReader.GetString(1);

4、DataAdapter

每个Adapter分别对应数据库和数据集中的一个Table,数据集中如果有多个table则需要多个adapter填充。

      如第一章节的结构图所示,它有四个属性,每个属性的值是一个Command对象。这四个属性分别是SelectCommand, InsertCommand, UpdateCommand, DeleteCommand 后三个即为设置adapter对象的更新逻辑,如此便可以使用adapter对象的update()方法将对数据集的更改存储到数据库。

SqlCommandBuilder类会根据SqlDataAdapter对象的SelectCommand属性自动生成adapter的更新逻辑,这样可以减少写许多代码,但是有如下不足:不能用存储过程生成,不能更新多个数据表。

例如: SqlCommandBuilder cb = new SqlCommandBuilder(da);

使用Fill方法时会自动打开和关闭数据库连接,已经显式打开的则用完不会自动关闭。

读取多个表可使用分号隔开语句后 da.Fill(ds) 或者用多个adapter读取数据。

不推荐用老式的构造Sql语句字符串的方法来改变参数,用command.parameters.add方法。

5、其它数据提供程序类

除了四个核心对象外还有如下几个常用对象:

Transaction: 事务处理
Parameter: 用来定义Sql语句和存储过程中使用的参数。
CommandBuilder:用于自动生成DataAdapter的命令属性。
Exception:数据处理异常类
Error:
ClientPermission:

(2)ADO.NET关键点---数据提供程序// 为存储过程添加参数
(2)ADO.NET关键点---数据提供程序

(2)ADO.NET关键点---数据提供程序SqlParameter parameterCustomerID 
= new SqlParameter("@CustomerID", SqlDbType.Int, 4);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序parameterCustomerID.Value 
= Int32.Parse(customerID);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序myCommand.Parameters.Add(parameterCustomerID);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序SqlParameter parameterFullName 
= new SqlParameter("@FullName", SqlDbType.NVarChar, 5);
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序parameterFullName.Direction 
= ParameterDirection.Output;
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序myCommand.Parameters.Add(parameterFullName);
(2)ADO.NET关键点---数据提供程序

事务处理
(2)ADO.NET关键点---数据提供程序(2)ADO.NET关键点---数据提供程序     应用程序通过SqlConnection对象的BeginTransaction来创建SqlTransaction对象对SqlTransaction对象执行关联的操作。
使用DBMS提供的事务支持性能较高,事务的隔离级别影响效率,应尽量使用简短的事务
(2)ADO.NET关键点---数据提供程序    示例:

(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序
//使用BeginTransaction方法创建事务
(2)ADO.NET关键点---数据提供程序
SqlTransaction myTrans = myConnection.BeginTransaction();
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序
//将Command对象登记到事务
(2)ADO.NET关键点---数据提供程序
myInsertCommand.Transaction = myTrans;
    myUpdateCommand.Transaction 
= myTrans;
(2)ADO.NET关键点---数据提供程序
(2)ADO.NET关键点---数据提供程序Try (2)ADO.NET关键点---数据提供程序

相关文章: