日期:2013-12-25  浏览次数:20487 次


一、特点引见

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

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

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

 

二、使用引见

⒈创建SqlCommand对象:

    string strConn,strSQL;

    strConn=”…………”;

    strSQL=”Select CustomerID,CompanyName from Customers”;

    SqlConnection cn = new SqlConnection(strConn);

    cn.Open();

    SqlCommand cmd;

   

    cmd=new SqlCommand();

    cmd.CommandText=strSQL;

    cmd.Connection=cn;

 

    cmd=new SqlCommand(strSQL,cn); 

⒉执行无前往行的查询:

    string strConn,strSQL;

    strConn=”……”;

strSQL=”Update Customers SET CompanyNme=’NewName’where CustomersID=’ALFKI’”;

    SqlConnection cn=new SqlConnection(strConn);

    cn.Open();

    SqlCommand cmd=new SqlCommand(strSQL,cn);

    int RecordsAffercted=cmd.ExecuteNonQuery();

    if(RecordsAffercted ==1)

       ……

    else

      …………

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

①    获取结果

string strConn,strSQL;

  strConn=”……”;

    SqlConnection cn=new SqlConnection(strConn);

  cn.Open();

  strSQL=”Select CustomerID,CompanyName from Customers”;

    SqlCommand cmd=new SqlCommand(strSQL,cn);

SqlDataReader rdr=cmd.ExecuteReader();

     While(rdr.Read())

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

  Rdr.Close(); 

②    更快获取

Ⅰ使用基于序号的查找

    ……

    SqlDataReader rdr=cmd.ExecuteReader();

    int CustomerIDOrdinal = rdr.GetOrdinal(“CustomerID”);

    int CompanyNameOrdinal = rdr.GetOrdinal(“CompanyName”);

    while(rdr.Read())

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

    rdr.Close();

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

    ……

    SqlDataReader rdr=cmd.ExecuteReader();

    int CustomerIDOrdinal = rdr.GetOrdinal(“CustomerID”);

   int CompanyNameOrdinal = rdr.GetOrdinal(“CompanyNameOrdinal”);

    while(rdr.Read())

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

    rdr.Close(); 

③获取多个结果

    …

    cn.Open();

    string strSQL =”select CustomerID,CompanyName from Customers;”+“select OrderID,CustomerID from Orders;”;

    SqlCommand cmd=new SqlCommand(strSQL,cn);

    SqlDataReader rdr=cmd.ExecuteReader();

    do

    {

        while(rdr.Read())