首页 > 代码库 > ADO.NET——Command(执行SQL) & DataReader(读取数据库)

ADO.NET——Command(执行SQL) & DataReader(读取数据库)

   

一,关于两个对象的基础知识

   1,Command

        Command对象主要用于对数据源执行SQL命令并返回结果。


      ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象。

    

    

     Command对象有一个属性:CommandTypesql语句或者存储过程);三个重要方法:ExecuteNonQuery(增、删、改影响的行数)、ExecuteReader(返回DataReader对象类型)ExecuteScalar(返回结果集的第一行第一列值).


  2,DataReader

    而DataReader对象不能直接实例化,必须通过Command对象中的一个方法来创建。


     所以,在使用这两个对象时,可以把他们连起来使用。首先,我们用Connection连接数据库,然后用Command执行数据库命令,最后将执行的结果传递给DataReader.


二,示例

   例如:

static void Main(string[] args)
        {
            //创建连接
            string strConn = "database=Login;server=localhost;UID=sa;PWD=123456";  //连接字符串

            using (SqlConnection conn = new SqlConnection(strConn)) //建立连接,并且当连接使用完后自动关闭
            {
                conn.Open();  //打开连接

                //查询
                string strSQL = "select * from Users where ID=@UserID";
                SqlCommand cmd = new SqlCommand(strSQL, conn);

                //添加参数
                string userid = "1";   //查询用户ID=1的用户
                cmd.Parameters.AddWithValue("@UserID", userid);  //参数的赋值

                //执行查询,保存结果
                SqlDataReader reader = cmd.ExecuteReader();  //将查询结果保存在reader里面

                //显示查询结果

                if (reader.HasRows)   //如果查到的结果不为空
                {
                    while (reader.Read())   //读取每条,逐条显示
                    {
                        Console.WriteLine("ID是:{0};UserName是:{1}", reader["ID"], reader["UserName"]);
                    }
                }
                else   //没有查询结果时候
                {
                    Console.WriteLine("没有查到结果");
                }
            }


            //conn.Close();  //关闭连接

        }


  以上例子包含了Command的参数化查询过程和DataReader的基本使用,再加上connection对象,基本可以完成对数据库的读操作。

   未完待续。。。

 

   

  

ADO.NET——Command(执行SQL) & DataReader(读取数据库)