当写了sqlCommand后,到底该用那个来执行这个command ??
很久没有自己全部自己写一整个程序,包含sqlCommand以及如何绑定到gridview ,花了一点时间查了一堆网页,总觉得不纪录起来我的脑容量大概明天就忘了。
Asp.net 主要执行SQL 有三种方法,ExecuteNonQuery() 、 ExecuteScalar()、ExecuteReader()
ExecuteNonQuery( ):
主要用来执行INSERT、UPDATE、DELETE和其他没有返回值得SQL命令。
ExecuteScalar( ):
返回结果集为:第一列的第一行。
经常用来执行SQL的COUNT、AVG、MIN、MAX 和 SUM 函数。
PS: ExecuteScalar 返回为Object类型,必须强置转型。
EX:
object objResult = objCMD.ExecuteScalar()
假设想要转型成string?
string result = cmd.ExecuteScalar().ToString();
ExecuteReader( ):
快速的对数据库进行查询并得到结果。
返回为DataReader对象,如果在SqlCommand对象中调用,则返回SqlDataReader。
对SqlDataReader.Read的每次调用都会从结果集中返回一行。
Q&A:
Q1:若我的数据不只有一行,是好多行要怎么利用?ExecuteReader() 来全部读出呢??
A1:因为?ExecuteReader ( ) 它是集中返回一行,所以我们必须让她一直重复读取的动作,直到无不到东西为止
我们透过SqlDataReader去接executeReader() 所返回的对象,并且透过sqlDataReader .Read() 让它一直读
但怕读到的为空白行,所以特别增加一个条件确定sqlDataReader? 不为空白行(DBnull.Value)
SqlConnection conn = openMSsqlConnection(); //连线
SqlCommand cmd = new SqlCommand(SQLString, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
//防止为空白行
if (!dr[0].Equals(DBNull.Value))
{
//do something
}
}
2018/05/25更新
果然这样写我还是不记得怎么写,在写详细点。这样应该更清楚啦~~
string SQLString = "SELECT USERSNAME,USERID FROM USERS WHERE USERID LIKE ‘06%‘";
SqlConnection conn = openMSsqlConnection(); //连线
SqlCommand cmd = new SqlCommand(SQLString, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
//防止为空白行
if (!dr[0].Equals(DBNull.Value))
{
string USERSNAME = dr["USERSNAME"].ToString();
string USERID = dr["USERID"].ToString();
//do something
}
}
参考数据
1.ASP.NET C# 3个执行SQL的方法说明
原文:大专栏 C# 执行sql 的方法
原文地址:https://www.cnblogs.com/chinatrump/p/11490967.html