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()方法,否则会抛出异常。