一、ExecuteNonQuery方法 :执行非查询SQL操作,包括增insert、删delete、改update;ExecuteNonQuery()方法执行SQL语句并且不返回数据。

 public static int ExecuteNonQuery(string strSql, SqlParameter[] parameter)
{
SqlConnection sqlConn = new SqlConnection(strConn);
SqlCommand sqlCmd = new SqlCommand(strSql, sqlConn);
if (parameter != null)
{
sqlCmd.Parameters.AddRange(parameter);
}
sqlConn.Open();
int objResult = sqlCmd.ExecuteNonQuery();
sqlConn.Close();
return objResult;
}

二、ExecuteDataset会运行你的基本SELECT(选择)查询并生成一个DataSet,然后就能够被绑定到服务器对象上,或者被用来创建DataView(数据视图)。

public static DataSet ExecuteDataSet(string strSql, SqlParameter[] parameter)
{
SqlConnection sqlConn = new SqlConnection(strConn);
SqlCommand sqlCmd = new SqlCommand(strSql, sqlConn);
SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCmd);
DataSet ds = new DataSet();
sqlAdp.Fill(ds);
return ds;
}
<span style="font-size:12px;"></span>

三、ExecuteReader主要是用于查询语句(SELECT),它是为了提高运行性能而设置的。SqlDataReaders很类似于经典 ADO里的只能向前的只读记录集(即类似ASP中的movenext),它们对于填充ListBoxe控件和CheckBoxList控件很有用处。对ExecuteReader的调用看起来就像是一个ExecuteDataset。要记住,它需要命名空间为System.Data.SqlClient:

所以以后如果SQL语句中,只要是查找单条的数据中的某个字段或全部字段时,如select  top  1  *  from XX  where id=xx;用DataSet (即ExecuteDataSet  ),但是如果说满足id=xx的结果有很多个数据,此时用ExecuteReader,因为它能够查询出“只读的向前的数据流”(如ASP中的movenext 一样,明白了吧,哈哈),如果此时用ExecuteDataSet就错了,更何况ExecuteReader读取数据的效率会比ExecuteDataSet高。

 public static SqlDataReader ExecuteReader(string strSql, CommandType commandType = CommandType.Text)
{
SqlConnection myConn = new SqlConnection(strSqlConnection);
SqlCommand SqlCmd = new SqlCommand(strSql, myConn);
SqlCmd.CommandType = commandType;
SqlDataReader sdr = null;
try
{
myConn.Open();
sdr = SqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
}
return sdr;
}

四、对于使用ExecuteScalar(),ExecuteScalar()方法执行SQl查询,并返回查询结果集中的第一行的第一列,忽略额外的列或行!虽然返回的值的数据类型可以是string,int。。。但msdn.com微软上说:

使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。与使用 ExecuteReader 方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。所以我习惯在count(字段)才用ExecuteScalar,如:

public int SelClass(decimal id) //添加类别
        {
            string commText = string.Format("select Count(id) as [Count] from FAQ_List where ClassID like '{0}%'", id);
            return Convert.ToInt32(db.ExecuteScalar(CommandType.Text, commText));
        }

 public static object ExecuteScalar(string strSql, CommandType commandType = CommandType.Text)
{
SqlConnection myConn = new SqlConnection(strSqlConnection);
SqlCommand SqlCmd = new SqlCommand(strSql, myConn);
SqlCmd.CommandType = commandType;
object objResult = null;
try
{
myConn.Open();
objResult=SqlCmd.ExecuteScalar();
}
catch(Exception ex)
{
}
finally
{
myConn.Close();
}
return objResult;

五、DataTable 与dataset十分相似;可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?

原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、删除、修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心数据库,这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。
DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable

public DataTable reDt(string cmdstr)  //执行sql查询
{
SqlConnection con =GetCon();
SqlDataAdapter da = new SqlDataAdapter(cmdstr, con);
DataSet ds = new DataSet();
da.Fill(ds);
return (ds.Tables[0]);
}

ExecuteNonQuery(),ExecuteDataSet() ,ExecuteReader() ,ExecuteScalar(),DataTable() 用法相关推荐

  1. [转]ExecuteNonQuery()、ExecuteReader()、ExecuteScalar()的简单说明

    http://blog.csdn.net/wuyujie1219/archive/2009/07/26/4380956.aspx 在连接SQL Server数据库:首先创建SqlConnection类 ...

  2. ExecuteNonQuery方法和ExecuteScalar方法的区别

      转自http://hi.baidu.com/shudaizi88/blog/item/34bb5b9bb79d7bbbc8eaf420.html   ----ExecuteNonQuery():执 ...

  3. java executenonquery_ExecuteNonQuery,ExecuteReader,ExecuteScalar 区别

    ExecuteNonQuery方法 :执行非查询SQL操作,包括增insert.删delete.改update ExcuteReader方法 :执行查询,返回DataReader,通过DataRead ...

  4. C# DataTable 用法简介

    C# DataTable 的常见用法: (1)新建数据表. DataTable dt=new DataTable();如果带个String参数,此参数表示表名. (2)向表添加列. //数据库的Nva ...

  5. JQuery Datatable用法

    原文出处:http://sgyyz.blog.51cto.com/5069360/1408251 目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求 ...

  6. Net编程 详解DataTable用法【转】

    http://www.diybloghome.com/article/16.html DataTable表示一个与内存有关的数据表,可以使用工具栏里面的控件拖放来创建和使用,也可以在编写程序过程中根据 ...

  7. C# DataTable用法详解

    添加引用 using System.Data; 创建表 //创建一个空表 DataTable dt = new DataTable(); //创建一个名为"Table_New"的空 ...

  8. c# datatable用法总结

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...

  9. C# DataTable 用法

    1.创建DataTable DataTable dataTable = new DataTable(); //创建一个空表 2.创建DataRow DataRow row = dataTable.Ne ...

最新文章

  1. 【转载】mysql主键的缺少导致备库hang
  2. jsp注册里密码强弱怎么弄_jsp+servlet实战酷炫博客+聊天系统
  3. MySQL Workbench/SQLyog 高分辨率屏幕上界面模糊的解决方法
  4. win10计算机记录,启用Windows 10计算器中的历史记录功能 | MOS86
  5. 《软件工程》第01章在线测试
  6. matlab 内存读取数据,matlab
  7. config done shell_shell do...done $config
  8. python怎么接外活_Python三大活器
  9. opengl绘制刻度坐标系_OpenGL中的坐标系-2D
  10. 修改MAC地址的方法(未测试)
  11. Activiti7实战-入门
  12. 悬崖帝国中文版下载|悬崖帝国中文破解版下载 v1.0绿色免安装版
  13. Unity手势插件FingerGestures
  14. 目标检测入门(一)两阶段目标检测的由来
  15. 微信小程序-文字跑马灯
  16. 一度智信:这些方法,帮你解决网店权重下降问题
  17. 使用vscode利用vue脚手架创建项目每次修改代码都会频繁编译
  18. 北京大学可视化发展前沿研究生暑期学校Day3
  19. 大数据实时计算流程介绍
  20. LCD12864点阵型液晶显示器介绍

热门文章

  1. git 小乌龟安装教程
  2. Oracle数据库如何彻底卸载
  3. 车载以太网解决方案 助力智能网联汽车开发
  4. 基于STM32C8T6的智能蓝牙小车(毕业设计)
  5. 随机森林-sklearn.ensemble.RandomForestRegressor
  6. linux 转换viso为pdf,foxpdf Visio转PDF转换器
  7. 空间坐标转化——三维转二维
  8. 创新之力迸发无限想象,联想创新开放日触见未来科技
  9. java麻将软件_dnf徽章加什么
  10. c语言编程题总结,c语言编程题总结