ADO.NET(二)执行命令

 

 定义好命令,我们就需要去执行他们,执行语句有很多,我们究竟要返回那条执行语句呢?就要看我们命令中要返回的是什么数据了。

sqlConnectionOleDbConnection提供了几种执行命令:

1.      ExecuteNonQuery------执行命令,不返回任何结果

2.      ExecuteReader-------执行命令,返回一个类型化IdataReader

3.      ExecuteScalar-------执行命令,返回一个值

sqlCommand类也提供了两个方法

1ExecuteResult------为将来使用而保留

2ExecuteXmlReader-----执行命令,返回一个XmlReader对象,它可以传送从数据库中返回的XML代码段

一.ExecuteNonQuery()

这个方法用语update, delete, insert语句,唯一的返回值是记录个数,但如果调用一个有输出参数的存储过程,就有返回值了。

string connStr = "server=127.0.0.1;database=first_dotnet;User ID=sa;password=;Persist Security Info=true;";

string sql = "select * from user_table";

sqlConnection con=new sqlConnection(connStr);

con.open();

sqlCommand cmd=new sqlCommand(sql,con);

cmd.ExecuteNonQuery();

con.close();

ExecuteNonQuery()返回命令所操作的行数,它为一整数

二.ExecuteReader()

这个方法执行命令,可根据使用的提供者返回一个DataReader或者OleDbDataReader对象,返回的对象可用于迭代返回的记录

string connStr = "server=127.0.0.1;database=first_dotnet;User ID=sa;password=;Persist

Security Info=true;";

string sql = "select user_name,user_job from user_table";

sqlConnection con=new sqlConnection(connStr);

con.open();

sqlCommand cmd=new sqlCommand(sql,con);

sqlDataReader reader=cmd.ExecuteReader();

while(reader.Reader())

{

    Console.WriteLine({0},{1},reader[0],reader[1]);

}

三.ExecuteScalar()

很多情况下,需要从SQL语句中返回一个结果,例如给定表中的记录个数,或者服务器当前的日期时间,ExecuteScalar()适用于这些情况

string connStr = "server=127.0.0.1;database=first_dotnet;User ID=sa;password=;Persist

Security Info=true;";

string sql = "select user_name,user_job from user_table";

sqlConnection con=new sqlConnection(connStr);

con.open();

sqlCommand cmd=new sqlCommand(sql,con);

Object o=cmd.ExecuteScalar();

该方法返回一个Object对象,如果需要可以把该对象的数据类型转化为合适的数据类型。

四.ExecuteResultSet()

这个方法标记为:为将来使用而保留,如果调用,则会抛出异常

五.ExecuteXMLReader()

这个方法给调用者返回一个XMLReader对象。SQL允许使用FOR XML子句来扩展SQL语句,

(1)   FOR XML AUTO

(2)   FOR XML RAW

(3)   FOR XML EXPLICIT

如何使用AUTO

       string connStr= "server=127.0.0.1;database=first_dotnet;User ID=sa;password=;Persist

 Security Info=true;";

string sql = "select user_name,user_job +from user_table FOR XML AUTO ";

sqlConnection con=new sqlConnection(connStr);

con.open();

sqlConnection con=new sqlConnection(connStr);

XmlReader xr=cmd.ExecuteXMLReader();

while(xr.Reader())

{

    Console.write(xr.ReaderOuterXml());

}

Con.close();

posted on 2008-03-27 19:13  湖边小树  阅读(381)  评论(1编辑  收藏  举报

导航