ExecuteNonQuery及对比

  ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库.因为名中有“Non Query”,就是执行非查询类的语句,比如update、delete、insert等数据更新操作。

【返回值】

  对于 Update,Insert,Delete  语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0。

【区别1】executereader()

  本函数执行查询操作,返回DataReader对象。

【区别2】ExecuteScalar()  

ExecuteScalar() 这个方法不接受任何参数,仅仅返回查询结果集中的第一行第一列,而忽略了其它的行和列,而且返回的是一个object类型,在使用之前必须先将它强制转换为所需类型。如果返回的仅仅是一个单独的数据元,则可以使用此方法来提高代码的性能。例:

 

   string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
   string strqry="select count(*) from Categories";
   SqlConnection con=new SqlConnection(strCon);
   con.Open();
   SqlCommand cmd=con.CreateCommand();
   int i=Convert.ToInt32(cmd.ExecuteScalar());
 //必须强制转换

【区别3】ExecuteXmlReader() 

 ExecuteXmlReader() 此方法用于XML操作,返回一个XmlReader对象,由于系统默认没有引用System.Xml名空间,因此在使用前必须前引入。例:

 

   string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
   SqlConnection con=new SqlConnection(strCon);
   con.Open();
   SqlCommand cmd = new SqlCommand("select * from Categories FOR XML AUTO, XMLDATA", con);
   XmlReader xr=cmd.ExecuteXmlReader();
   Response.Write(xr.AttributeCount);
  //这里获取当前节点上的属性个数
 
   xr.Close();

 

 执行完毕之后,照样要显式地调用Close()方法,否则会抛出异常。

 

posted @ 2013-03-14 22:49  讯蜂  阅读(227)  评论(0编辑  收藏  举报