zoukankan      html  css  js  c++  java
  • ExecuteNonQuery,ExecuteReader,ExecuteScalar 区别

    ExecuteNonQuery方法 :执行非查询SQL操作,包括增insert、删delete、改update 
    ExcuteReader方法 :执行查询,返回DataReader,通过DataReader的对象dr["列名"] 
    可以取得数据,一次读一行,可以通过while(dr.Read())进行循环读取 
    ExecuteScalar方法 :执行查询,只返回一个数据

    在连接SQL Server数据库:首先创建SqlConnection类和SqlCommand类实例分别用于连接到SQL Server数据库和执行SQL语句命令,然后打开数据连接并使用SqlCommand的相应方法执行SQL语句。
    ExecuteNonQuery()方法执行SQL语句并且不返回数据;
    ExecuteReader()方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象,该SqlDataReader对象包含SQL命令返回的数据;
    ExecuteScalar()方法执行SQl查询,并返回查询结果集中的第一行的第一列,忽略额外的列或行!

    例如:
    SqlConnection MyConncetion = new SqlConnection(m_SqlConnection);
    SqlCommand MyCmd = new SqlCommand(p_StrSql, MyConncetion);
    一:
    MyConncetion.Open();
    MyCmd.ExecuteNonQuery();
    二:
    MyConncetion.Open();
    SqlDataReader MyReader = MyCmd.ExecuteReader();
                if (MyReader.Read())
                {
                    return 0;
                }
                else
                {
                    throw new Exception("Value Unavailable!");
                }
    三:
    MyConnection.Open();
    SqlDataAdapter SqlDa = new SqlDataAdapter(p_StrSql, MyConnection);
    DataSet Ds = new DataSet("ds");
    SqlDa.Fill(Ds);

    四:


    MyConncetion.Open();
    object r = MyCmd.ExecuteScalar();
                if (object.Equals(r, null))
                {
                    throw new Exception("Value Unavailable!");

                }
                else
                {
                    return (int)r;

                }

    注意:ExecuteReader() 方法需要配合 SqlDataReader 对象使用,执行得到的数据集为只读且光标只能从前向后移动。

                

    string oSql = "select id, password, name, level    from verify";SqlCommand comm = new SqlCommand(oSql, con);con.Open();//在调用方法前打开数据库连接,可以减少数据库连接所花的时间,节省数据库资源。SqlDataReader dr = comm.ExecuteReader ();While(dr.Read()){    String id = "";    id = dr[0].ToString(); //(0为第一列)    //或 id=dr["id"].ToString();(引用字段名)    //或id= dr.GetString (dr.GetOrdinal ("id"));}//在读取数据结束后才能关闭数据库,因为 SqlDataReader 对象的数据源必须保持数据库连接。con.Close();

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wuyujie1219/archive/2009/07/26/4380956.aspx

  • 相关阅读:
    HDU 5273 Dylans loves sequence 暴力递推
    HDU 5285 wyh2000 and pupil 判二分图+贪心
    HDU 5281 Senior's Gun 贪心
    HDU 5651 xiaoxin juju needs help 逆元
    HDU 5646 DZY Loves Partition
    HDU 5366 The mook jong
    HDU 5391Z ball in Tina Town 数论
    HDU 5418 Victor and World 允许多次经过的TSP
    HDU 5642 King's Order dp
    抽屉原理
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9749325.html
Copyright © 2011-2022 走看看