您的位置:首页 > 数据库

读书笔记系列之------SqlCommander和SqlDataReader对象

2008-04-26 21:05 691 查看
一、特点介绍

⒈SqlCommand:表示要对执行的一个Transact-SQL语句或存储过程。

⒉SqlDataReader:提供一种从数据库读取只进的行流的一种方式。若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不直接使用构造函数。应该尽可能迅速的关闭SqlDataReader对象

⒊SqlParameter:表示SqlCommand的参数,也可以是它到DataSet列的映射。

二、使用介绍

⒈创建SqlCommand对象

stringstrConn,strSQL;

strConn=”…………”;

strSQL=”SelectCustomerID,CompanyNamefromCustomers”;

SqlConnectioncn=newSqlConnection(strConn);

cn.Open();

SqlCommandcmd;

cmd=newSqlCommand();

cmd.CommandText=strSQL;

cmd.Connection=cn;

cmd=newSqlCommand(strSQL,cn);

⒉执行无返回行的查询:

stringstrConn,strSQL;

strConn=”……”;

strSQL=”UpdateCustomersSETCompanyNme=’NewName’whereCustomersID=’ALFKI’”;

SqlConnectioncn=newSqlConnection(strConn);

cn.Open();

SqlCommandcmd=newSqlCommand(strSQL,cn);

intRecordsAffercted=cmd.ExecuteNonQuery();

if(RecordsAffercted==1)

……

else

…………

⒊用SqlDataReader对象检查查询结果:

① 获取结果

stringstrConn,strSQL;

strConn=”……”;

SqlConnectioncn=newSqlConnection(strConn);

cn.Open();

strSQL=”SelectCustomerID,CompanyNamefromCustomers”;

SqlCommandcmd=newSqlCommand(strSQL,cn);

SqlDataReaderrdr=cmd.ExecuteReader();

While(rdr.Read())

Console.Writeline(rdr[“CustomerID”]+rdr[“CompanyName”]);

Rdr.Close();

② 更快获取

Ⅰ使用基于序号的查找

……

SqlDataReaderrdr=cmd.ExecuteReader();

intCustomerIDOrdinal=rdr.GetOrdinal(“CustomerID”);

intCompanyNameOrdinal=rdr.GetOrdinal(“CompanyName”);

while(rdr.Read())

Console.WriteLine(rdr[CustomerIDOrdinal]+rdr[CompanyNameOrdinal]);

rdr.Close();

Ⅱ使用适当的类型指定Get方法

……

SqlDataReaderrdr=cmd.ExecuteReader();

intCustomerIDOrdinal=rdr.GetOrdinal(“CustomerID”);

intCompanyNameOrdinal=rdr.GetOrdinal(“CompanyNameOrdinal”);

while(rdr.Read())

Console.WriteLine(rdr.GetString(CustomerIDOrdinal)+rdr.GetString(CompanyNameOrdinal));

rdr.Close();

③获取多个结果



cn.Open();

stringstrSQL=”selectCustomerID,CompanyNamefromCustomers;”+“selectOrderID,CustomerIDfromOrders;”;1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: