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 的方法

原文地址:https://www.cnblogs.com/chinatrump/p/11490967.html

时间: 2024-10-25 14:20:31

C# 执行sql 的方法的相关文章

MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEntity(T

EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 (原文) public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEnti

C#代码验证sql语句是否正确(只验证不执行sql)的方法

转自 :http://www.jquerycn.cn/a_15010 为大家介绍如何用C#验证sql语句的正确性,就像sql查询分析器中的检测代码功能一样,有需要的朋友,可以参考下. 需要用到如下的知识:SET PARSEONLY检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句.SET PARSEONLY { ON | OFF }当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句.当 SET PARSEONLY 为 OFF 时,SQ

JDBC链接Mysql数据库+执行sql

package com.wangbingan.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /**  * JDBC链接数据库  *   * @author Administrator  *   */ public class JdbcUtil { public static void main(Strin

InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法

简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报错. 一般来说,数据库脚本只保证通过官方客户端测试即可,同时维护一份供IS执行的脚本费时费力.因此,考虑安装程序对两数据库的支持通过官方客户端实现. MySQL   function InstallMySQLComponent(szComponent) NUMBER nResult; STRING

PLSQL执行sql语句输出的中文是???之解决方法和步骤

方法/步骤 1 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出 步骤阅读 2 输入sql语句select * from V$NLS_PARAMETERS查看字符集,查看第一行value值是否为简体中文 步骤阅读 3 进入注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(小编安装的是Oracle 11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,

MySQL命令执行sql文件的两种方法

MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希望能给刚开始学习 MySQL 数据库的朋友们. 学习过 SQLServer 或 Oracle 的朋友会知道,sql 脚本是包含一到多个 sql 命令的 sql 语句集合,我们可以将这些 sql 脚本放在一个文本文件中(我们称之为“sql 脚本文件”),然后通过相关的命令执行这个 sql 脚本文件.基

PDO中执行SQL语句的三种方法

在PDO中,我们可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~大理石构件来图加工 在上一篇文章<使用PDO构造函数连接数据库及DSN详解>中,我们介绍了如何使用构造函数连接数据库和DSN的详解,那么我们这篇文章跟大家介绍在PDO中执行SQL语句的三种方式,下面我们将一一介绍! 第一种方法:exec()方法 exec()方法返回执行SQL 语句后受影响的行数,其语法格式如下: 1 int PDO::exec(

Inno Setup执行SQL脚本的方法

作为和NSIS并立的.两个最流行的免费Windows应用程序安装包制作工具之一,Inno在学习难度上相对要低一些,非常适合对一些简单的桌面程序打包.但对于较复杂的安装过程,或者Web应用程序来说,我个人觉得不是Inno的强项.当然,既然Inno内嵌了Pascal语言用以扩展功能,理论上不是不可以应付复杂的安装过程,但实现起来要复杂一些. 比如对于在安装过程中连接数据库并执行SQL脚本这样的需求,使用InstallShield应该会简单地多,而Inno却不支持直接操作数据库,并且相关的资料说明少之