C# 执行sql 的方法

当写了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 的方法


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11490967.html