下面我将详细讲解在机房收费系统D层中如何对数据库的增加、删除、修改,最后再来总结一下

ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法:

一、增、删、改

1、 增加新的记录

  1. Private Sub frmAddUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2. {
  3. MyConnection.Open();’打开数据库
  4. MyCommand1.CommandText="InsertintoUser_Info(userID,PWD,Level,UserName) values (@UserID,@PWD,@Level,@UserName) ";
  5. MyCommand1.Connection = MyConnection;
  6. MyCommand1.ExecuteNonQuery();
  7. ’由于增加了一条记录,所以返回1
  8. //或者MyCommand1.ExecuteReader();先增加一条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
  9. //或者MyCommand1. ExecuteScalar();先增加一条记录,返回未实列化的对象
  10. MyConnection.Close();
  11. }

2、 删除现有数据

  1. Private Sub frmDeUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2. {
  3. MyConnection.Open();’打开数据库
  4. MyCommand1.CommandText = "delete * from admin";
  5. MyCommand1.Connection = MyConnection;
  6. MyCommand1.ExecuteNonQuery();
  7. ’由于删除了n条记录,所以返回n
  8. //或者MyCommand1.ExecuteReader();先删除n条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
  9. //或者MyCommand1. ExecuteScalar();先删除n条记录,返回未实列化的对象
  10. MyConnection.Close();
  11. }

3、 修改现有数据

  1. Private Sub frmModifyUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2. MyConnection.Open();’打开数据库
  3. MyCommand1.CommandText = "update User_Info set PWD='" & enUser.NewPWD & "' where UserName ='" & enUser.UserName & "'";
  4. MyCommand1.Connection = MyConnection;
  5. MyCommand1.ExecuteNonQuery();’
  6. 由于修改了1条记录,所以返回n
  7. //或者MyCommand1.ExecuteReader();
  8. 先修改了1条记录,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
  9. //或者MyCommand1. ExecuteScalar();先修改了1条记录,返回未实列化的对象
  10. 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。

例如:

  1. privatevoid Page_Load(object sender, System.EventArgs e)
  2. {
  3. MyConnection.Open();’打开数据库
  4. MyCommand1.CommandText= "CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEYCLUSTERED, code_desc varchar(50) NOT NULL)" MyCommand1.Connection = MyConnection;
  5. MyCommand1.ExecuteNonQuery();’首先建立一个LookupCodes表,然后返回-1
  6. //或者MyCommand1.ExecuteReader();首先建立一个LookupCodes表,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
  7. //或者MyCommand1.ExecuteScalar();首先建立一个LookupCodes表,返回未实列化的对象
  8. MyConnection.Close();
  9. }

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)

三、总结:

ASP.Net中对于数据库的操作方法很多,要实现统一个目标不同的人可能会采取不同的方法,就好像在ASP中有的人喜欢用RS.Addnew,有的人喜欢用”Insert Into”,主要是看个人的习惯,当然在性能上不同的方法可能会存在较大的差别,这个只能靠我们在平常的学习中一点一滴的积累经验的。

另外顺便说一下 ASP.Net页提供类似如下方式的操作方法:

  1. Dim Paras As SqlParameter() ={New SqlParameter("@cardno", enStudent.cardno),
  2. New SqlParameter("@studentNo", enStudent.studentNo),
  3. New SqlParameter("@studentName", enStudent.studentName),
  4. New SqlParameter("@sex", enStudent.sex),
  5. New SqlParameter("@department", enStudent.department),
  6. New SqlParameter("@grade", enStudent.grade),
  7. New SqlParameter("@Studentclass", enStudent.Studentclass),
  8. New SqlParameter("@cash", enStudent.cash),
  9. New SqlParameter("@status", enStudent.status)
  10. }

以上是对ASP.NET中的ExecuteNonQuery()方法的用法的简单总结,如有出入,还请见谅。

ASP.NET中的ExecuteNonQuery()方法的用法的更多相关文章

  1. TinyMCE(富文本编辑器)在Asp.Net中的使用方法

    TinyMCE(富文本编辑器)在Asp.Net中的使用方法   转至:http://www.cnblogs.com/freeliver54/archive/2013/02/28/2936506.htm ...

  2. Tinymce在ASP.NET中的使用方法

    现在做网页,用FCKEditor用得比较多,它的实现原理是在要加入FCKEditor的地方加入一个iframe,并将其src指向FCKeditor/editor/fckeditor.html?Inst ...

  3. 【转载】ASP.NET中Server.MapPath方法获取网站根目录总结

    在ASP.NET网站应用程序中,可以通过Server.MapPath方法来获取跟服务器有关的目录信息,如获取网站的根目录.获取当前代码文件所在的目录路径.获取当前代码所在路径的上级路径等.Server ...

  4. Java用代码演示String类中的以下方法的用法

    用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上 ...

  5. asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)

    博客分类: ASP.NET   一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...

  6. ASP.NET中调用存储过程方法

    两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的“官方”方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后不再一一说明.本文所 ...

  7. 几种判断asp.net中session过期方法的比较

    方法一:最麻烦也是最容易想到的方法,在每个页面的page_load()方法里面判断: protected void Page_Load(object sender, EventArgs e) { if ...

  8. ASP.NET中Get和Post的用法

    单form的提交有两种方式,一种是get的方法,一种是post 的方法.看下面代码,理解ASP.NET Get和Post两种提交的区别: < form id="form1"  ...

  9. ASP.NET中<%=%>、<%%>、<%@%>、<%#%>的用法与区别

    1.<%= %> 里面放变量名,获取后台的变量值,直接输入变量到页面上,里面放的变量名,未经过encode eg: 后台: seession["ab"]=ab; 前台: ...

随机推荐

  1. ThinkPhp学习09

    原文:ThinkPhp学习09 三.区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系 //SELECT * FR ...

  2. QUIC简单介绍

    QUIC,即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟.之前我曾介绍过SPDY的相关信息 ...

  3. 例3.1 猜猜数据结构 UVa11995

    1.标题叙述性说明:点击打开链接 2.解题思路:据来推測一种可能的数据结构,备选答案有"栈,队列.优先队列".结果也可能都不是或者不确定. STL中已经有这三种数据结构了,因此直接 ...

  4. 在Ubuntu Desktop打开终端的2种方式

    共有3中方法: 1.在Ubuntu左上角选择File/Open in Terminal 2.快捷键alt+F2调出Run a Command,输入gnome-terminal 添加右键支持 在终端,输 ...

  5. 移植ffmpeg到VC环境心得

    所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...

  6. hdu4496 D-City

    D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submis ...

  7. wordpress搭建后地址栏页面显示IP地址的问题

    搭建了wordpress.也在万网加入了A记录,这时訪问站点(我的是yesareno.com),发现仅仅在yesareno的主页,地址栏是域名.点击进入其它界面发现地址栏变成了ip地址,例如以下图 竟 ...

  8. VSTO 向office文档中插入内容

    原文:VSTO 向office文档中插入内容 Word: Word.Selection sec = ThisAddIn.appWord.Selection;            sec.Insert ...

  9. 全面总结:matlab怎么做漂亮的图

    源地址:http://blog.csdn.net/ccxcau/article/details/7362764 MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2 ...

  10. poj1860(spfa判正环)

    题目连接:http://poj.org/problem?id=1860 题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 money=(nowmoney-手续费)*rat ...