ExecuteNonQuery,ExecuteReader,ExecuteScalar 区别

转载 2012年02月15日 14:02:08

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


【UI】第二周 AI软件基础与字体设计

-
  • 1970年01月01日 08:00

关于ExecuteNonQuery(),ExecuteReader();ExecuteScalar();之间的区别

 1.ExecuteNonQuery(); 它的返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。 2.ExecuteReader(); 它的返回类型为S...
  • yb625887489
  • yb625887489
  • 2014-07-29 14:32:44
  • 633

ExecuteNonQuery、ExecuteScalar、Dataset、ExecuteReader的不同意义和用法

1. ExecuteNonQuery 方法执行 一个非查询语句( Update 、 Insert 、 Delete 等)  返回值是执行的影响行数,返回类型为int 例如:  us...
  • s1102379635
  • s1102379635
  • 2012-08-21 21:31:30
  • 2750

ExecuteNonQuery,ExecuteScalar,ExecuteReader的比较

在机房收费系统.net版本中,用到了ExecuteNonQuery(),ExecuteScalar(),ExecuteReader这三个属性,其实这三个属性都是执行在vb.net中执行sql语句,只是...
  • suneqing
  • suneqing
  • 2014-01-04 20:34:33
  • 2299

浅谈ExecuteNonQuery方法和ExecuteScalar方法和ExecuteReader方法的使用

1)ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),那么方法将返回操作所影响的记录条数。 下面...
  • gengyudan
  • gengyudan
  • 2013-09-22 10:23:04
  • 7186

C#中ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()方法的作用

ExecuteReader() 一般是连接数据库 操作查询的 返回的是个adapter 、ExecuteNonQuery() 执行数据库 非查询类操作 、ExecuteScalar() 类型...
  • ccx_john
  • ccx_john
  • 2013-12-25 15:10:11
  • 2668

ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别

  • 2010年09月08日 09:47
  • 30KB
  • 下载

ExecuteNonQuery();ExecuteReader();ExecuteScalar();的简单用法

  • 2009年12月08日 10:19
  • 1KB
  • 下载

浅谈asp.net中的ExecuteNonQuery(),ExecuteReader()和ExecuteScalar().

  • 2008年05月09日 01:02
  • 2KB
  • 下载

ExecuteNonQuery方法、ExecuteScalar方法、ExecuteReader方法的区别

----ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),那么方法将返回操作所影响的记录条数。 ...
  • yhj198927
  • yhj198927
  • 2017-06-02 14:36:50
  • 353
收藏助手
不良信息举报
您举报文章:ExecuteNonQuery,ExecuteReader,ExecuteScalar 区别
举报原因:
原因补充:

(最多只允许输入30个字)