1、 增加新的记录 
private void Page_Load(object sender, System.EventArgs e) 

MyConnection.Open();’打开数据库 
MyCommand1.CommandText = "insert into admin values(‘aaddq‘,‘as‘,‘ss‘)"; 
MyCommand1.Connection = MyConnection; 
MyCommand1.ExecuteNonQuery();’由于增加了一条记录,所以返回1 
//或者MyCommand1.ExecuteReader();先增加一条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF 
//或者MyCommand1. ExecuteScalar();先增加一条记录,返回未实列化的对象 
MyConnection.Close(); 
}

2、 删除现有数据 
private void Page_Load(object sender, System.EventArgs e) 

MyConnection.Open();’打开数据库 
MyCommand1.CommandText = "delete * from admin"; 
MyCommand1.Connection = MyConnection; 
MyCommand1.ExecuteNonQuery();’由于删除了n条记录,所以返回n 
//或者MyCommand1.ExecuteReader();先删除n条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF 
//或者MyCommand1. ExecuteScalar();先删除n条记录,返回未实列化的对象 
MyConnection.Close(); 
}

3、 修改现有数据 
private void Page_Load(object sender, System.EventArgs e) 

MyConnection.Open();’打开数据库 
MyCommand1.CommandText = "update admin set admin_code=’212’,Admin_pwd=’43’ where admin_code=’23’"; 
MyCommand1.Connection = MyConnection; 
MyCommand1.ExecuteNonQuery();’由于修改了1条记录,所以返回n 
//或者MyCommand1.ExecuteReader();先修改了1条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF 
//或者MyCommand1. ExecuteScalar();先修改了1条记录,返回未实列化的对象 
MyConnection.Close(); 
}

关于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别: 
1、ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是SQL="CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)"那么在表创建成功后该方法返回 -1。 
例如: 
private void Page_Load(object sender, System.EventArgs e) 

MyConnection.Open();’打开数据库 
MyCommand1.CommandText = "CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)"; MyCommand1.Connection = MyConnection; 
MyCommand1.ExecuteNonQuery();’首先建立一个LookupCodes表,然后返回-1 
//或者MyCommand1.ExecuteReader();首先建立一个LookupCodes表,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF 
//或者MyCommand1. ExecuteScalar();首先建立一个LookupCodes表,返回未实列化的对象 
MyConnection.Close(); 
}

2、 ExecuteScalar():执行SQL,(如果SQL是查询Select)返回查询结果的第一行第一列,如果(如果SQL不是查询Select)那么返回未实列化的对象,因为对象未实列化,所以返回结果不能ToString(),不能Equals(null),也就是说返回结果没有任何作用

3、 executeReader方法执行SQL,(如果SQL是查询Select)返回查询结果的集合,类型是System.Data.OleDb.OleDbDataReader,你可以通过此结果,获取查询的数据。如果(如果SQL不是查询Select)那么返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF)

实际例子:

参数接口:

//获取用户信息
[HttpGet]
public Models.Return Getuserinfo()
{
Models.Return ret = new Models.Return();
HttpRequest request = HttpContext.Current.Request;
string openid = request["openid"];
if (string.IsNullOrEmpty(openid))
{
ret.code = 119;
ret.msg = "参数不全";
}
else
{
try
{
string sql = "";
List<DbParameter> ps = new List<DbParameter>();
ndb = Tools.Db;
ndb.Open();
sql = "select wx_openid,id,realname,user_name,mobile,idnum,money,score from eg_user where wx_openid=@openid";
ps.Add(ndb.CreateParameter("@openid", openid));
DataTable dt = ndb.ExecuteDataTable(sql, ps);
ArrayList data = new ArrayList();
foreach (DataRow dr in dt.Rows)
{
data.Add(new
{
id = dr["id"],
realname = dr["realname"],
user_name = dr["user_name"],
mobile = dr["mobile"],
idnum = dr["idnum"],
money = dr["money"],
score = dr["score"]
});
}
ret.code = 0;
ret.data = data;
}
catch (Exception ex)
{
Tools.Log.Error("Error", ex);
ret.code = 100;
}
finally
{
if (ndb != null)
{
ndb.Close();
ndb = null;
}
}
}
return ret;
}

[HttpPost]
public Models.Return Recharge()
{
Models.Return ret = new Models.Return();
HttpRequest request = HttpContext.Current.Request;
string openid = request["openid"];
string re_money = request["Re_money"];
string re_score = request["Re_score"];
if (string.IsNullOrEmpty(openid) || string.IsNullOrEmpty(re_money) || string.IsNullOrEmpty(re_score))
{
ret.code = 119;
ret.msg = "参数输入不完整";
}
else
{
try
{
string sql = "";
List<DbParameter> ps = new List<DbParameter>();
ndb = Tools.Db;
ndb.Open();
sql = "select id from eg_user where wx_openid=@openid";
ps.Add(ndb.CreateParameter("@openid", openid));
int id = Convert.ToInt32(ndb.ExecuteScalar(sql, ps));//获取eg_user 表中的id,ExecuteScalar(如果SQL是查询Select)返回查询结果的第一行第一列
sql = "update eg_user set money=money+@money,score=score+@score,total_score+total_score+@score where id=@id";
ps.Add(ndb.CreateParameter("@id", id));
ps.Add(ndb.CreateParameter("@money", double.Parse(re_money)));
ps.Add(ndb.CreateParameter("@score", double.Parse(re_score)));
ndb.ExecuteNonQuery(sql, ps);

sql = "insert into eg_user_log(log_info,log_time,log_admin_id,log_user_id,money,score,point,user_id) values('充值缴费',@log_time,@log_admin_id,@log_user_id,@money,@score,@point,@user_id)";
ps.Clear();
ps.Add(ndb.CreateParameter("@log_time", Library.Net.Common.Time.ConvertDateTimeInt(DateTime.Now)));//将时间转换为时间戳格式
ps.Add(ndb.CreateParameter("@log_admin_id", Tools.SessionSupplier == null ? 0 : Tools.SessionSupplier.id));//三目运算,减少错误
ps.Add(ndb.CreateParameter("@log_user_id", 0));
ps.Add(ndb.CreateParameter("@money", re_money));
ps.Add(ndb.CreateParameter("@score", re_score));
ps.Add(ndb.CreateParameter("@point", 0));
ps.Add(ndb.CreateParameter("@user_id", id));
ndb.ExecuteNonQuery(sql, ps);

sql = "select wx_openid,id,realname,user_name,mobile,idnum,money,score from eg_user where wx_openid=@openid_sel";
ps.Add(ndb.CreateParameter("@openid_sel", openid));
DataTable dt = ndb.ExecuteDataTable(sql, ps);
ArrayList data = new ArrayList();
foreach (DataRow dr in dt.Rows)
{
data.Add(new
{
id = dr["id"],
realname = dr["realname"],
user_name = dr["user_name"],
mobile = dr["mobile"],
idnum = dr["idnum"],
money = dr["money"],
score = dr["score"]
});
}
if (data.Count > 0)
{
ret.code = 0;
ret.msg = "充值成功";
ret.data = data;
}
else
{
ret.code = 1;
ret.msg = "充值失败";
ret.data = null;
}

}
catch (Exception ex)
{
Tools.Log.Error("Error", ex);
ret.code = 110;
}
finally
{
if (ndb != null)
{
ndb.Close();
ndb = null;
}
}
}
return ret;
}

转载于:https://www.cnblogs.com/fuyf/p/4849475.html

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

  1. ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转

    转载于http://www.cnblogs.com/asdyzh/p/9741641.html ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法-转 ...

  2. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  3. 【c++】14.编译proto和proto相关用法

    编译proto和proto相关用法 关于proto相关的知识可以参考系列博客 https://blog.csdn.net/daaikuaichuan/category_9869251.html [xx ...

  4. $.extend 的相关用法

    $.extend 的相关用法 1.1 $.extend(result,item1,item2-..) 将所有的参数项都合并result中,返回result,会破坏result的结构. 1.2 $.ex ...

  5. boost::mpl::always相关用法的测试程序

    boost::mpl::always相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::always相关用法的测试程序 C++实现代码 #include <boost ...

  6. boost::mpl::advance相关用法的测试程序

    boost::mpl::advance相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::advance相关用法的测试程序 C++实现代码 #include <boo ...

  7. boost::mpl::aux::template_arity相关用法的测试程序

    boost::mpl::aux::template_arity相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::aux::template_arity相关用法的测试程序 ...

  8. boost::mpl::aux::msvc_is_class相关用法的测试程序

    boost::mpl::aux::msvc_is_class相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::aux::msvc_is_class相关用法的测试程序 C+ ...

  9. boost::mpl::aux::largest_int相关用法的测试程序

    boost::mpl::aux::largest_int相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::aux::largest_int相关用法的测试程序 C++实现代 ...

  10. boost::mpl::inherit_linearly相关用法的测试程序

    boost::mpl::inherit_linearly相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::mpl::inherit_linearly相关用法的测试程序 C++实现代 ...

最新文章

  1. java进程cpu使用率高_什么会导致Java应用程序的CPU使用率飙升?
  2. 生成动态代理并加入系统功能的设计模板
  3. Openssl建立CA系统
  4. 如何导入JDBC驱动
  5. GBK编码和UTF-8编码区别各所占用字节数
  6. 实现一个串口调试工具
  7. java开发mdm平台_Apple iOS MDM开发流程
  8. 福建省小学四年级上册计算机知识点总结,小学四年级上册数学知识点大全【1-6单元】...
  9. mapabc 国人推荐
  10. 彩虹表破解md5密码
  11. 凸优化理论基础2——凸集和锥
  12. ROS机器人建模与仿真(一)--URDF机器人建模
  13. ERROR: Failed building wheel for box2d-py
  14. 005_redis_set集合
  15. Spring是什么?干什么的?怎么用?
  16. 线代[2]|对极易混淆概念的梳理—线性相关与线性无关、极大线性无关部分组与秩与基础解系、向量空间的基与维数
  17. multiple 属性,上传多个文件或图片
  18. PHP中的6种加密方式
  19. 黎明杀机手游注册登陆详解
  20. STM32单片机蓝牙APP语音识别智能家居系统风扇灯空调窗帘温度湿度入侵检测

热门文章

  1. Linux tcp同时多个连接,我的linux tcp server最多只能同时进行10个TCP请求,其余的都在等待了,如何让所有的连接都同时进行?...
  2. linux安装postgresql数据库
  3. shell应用之下载rpm包
  4. jboss7学习2-jboss7入门(端口和访问的ip问题)
  5. centos7 crontab 定时执行python任务不执行的原因及解决办法
  6. 动态规划之背包问题 - 01背包+完全背包+多重背包
  7. 习题4-6 水仙花数(20 分)
  8. python基础之Day20part1
  9. Java基础 - 集合
  10. Maven 常用的命令