`

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

    博客分类:
  • C#
阅读更多

下面我们将详细讲解如何在Page_Load()中对数据库的增加、删除、修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法

--------------------------------------------------------------
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)


四、总结:
ASP.Net中对于数据库的操作方法很多,要实现统一个目标不同的人可能会采取不同的方法,就好像在ASP中有的人喜欢用RS.ADDNEW, 有的人喜欢用”Insert Into”,主要是看个人的习惯,当然在性能上不同的方法可能会存在较大的差别,这个只能靠我们在平常的学习中一点一滴的积累经验的。另外顺便说一下 ASP.Net页提供类似如下方式的操作方法:
OleDbCommand2.Parameters("au_id").Value = TextBox1.Text
OleDbCommand2.Parameters("au_lname").Value = TextBox2.Text
OleDbCommand2.Parameters("au_fname").Value = TextBox3.Text
OleDbCommand2.Parameters("phone").Value = TextBox4.Text
OleDbCommand2.Parameters("address").Value = TextBox5.Text
OleDbCommand2.Parameters("city").Value = TextBox6.Text
OleDbCommand2.Parameters("st").Value = TextBox7.Text
OleDbCommand2.Parameters("zip").Value = TextBox8.Text
OleDbCommand2.Parameters("contract").Value = CheckBox1.Checked
cmdresults = OleDbcommand2.ExecuteNonQuery()

分享到:
评论

相关推荐

    ExecuteNonQuery();ExecuteReader();ExecuteScalar();的简单用法

    其中`ExecuteNonQuery()`、`ExecuteReader()`和`ExecuteScalar()`这三个方法是SqlCommand类中最常用的执行SQL语句的方法,它们各有特点,在不同的场景下发挥着重要的作用。 ### 一、`ExecuteNonQuery()` `...

    ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别

    ### ExecuteReader(), ExecuteNonQuery(), ExecuteScalar(), ExecuteXmlReader()之间的区别 #### 1. ExecuteReader() **ExecuteReader()** 方法主要用于执行查询语句,并返回一个 `SqlDataReader` 或 `...

    浅谈asp.net中的ExecuteNonQuery(),ExecuteReader()和ExecuteScalar().

    在ASP.NET开发中,数据库操作是必不可少的一部分,而`ExecuteNonQuery()`, `ExecuteReader()`, 和`ExecuteScalar()`这三个方法是ADO.NET数据访问技术中用于执行SQL命令的关键成员。它们分别对应于不同的数据库操作...

    【数据库查询】--ExecuteScalar方法使用.rar

    `ExecuteScalar`比其他执行查询的方法(如`ExecuteReader`或`ExecuteNonQuery`)更快,因为它只需要获取一个值,不需要处理整个数据集。因此,当只关心单个值时,应优先考虑使用`ExecuteScalar`。 4. **事务支持**...

    ExecuteNonQuery()

    下面我们将深入探讨ExecuteNonQuery()的使用及其与其他数据库操作方法的区别。 在示例代码中,可以看到ExecuteNonQuery()方法在不同数据库操作中的应用。例如,在增加新记录时,方法会返回1,表示成功添加了一条...

    微软数据访问类库SQLHelper.cs

    用于SqlClient的数据访问支持如下方法: ExecuteNonQuery ExecuteDataset ExecuteReader ExecuteScalar ExecuteXmlReader FillDataset UpdateDataset CreateCommand ExecuteNonQueryTypedParams ...

    精简的SqlHelper帮助类,含注释说明

    该Sqlhelper.cs帮助类中包含基本的数据库方法:ExecuteNonQuery、ExecuteReader、ExecuteScalar;代码总共才266行...给需要的孩童们...

    c#给学员的笔记(七) ASP.NET

    以下将详细介绍三个主要方法:ExecuteScalar、ExecuteReader和ExecuteNonQuery。 1. **ExecuteScalar方法**: ExecuteScalar方法用于执行SQL查询并返回单个值。这通常用于计算类型的查询,如COUNT(*),SUM()等。...

    第9章.ASP.NET操作数据库.doc

    总结:本章深入探讨了 ASP.NET 操作数据库的高级技术,从使用 ADO.NET 的 ExecuteReader、ExecuteNonQuery 和 ExecuteScalar 方法,到借助 SQLHelper 类简化数据库操作,再到利用数据源控件在页面上直接操作数据库,...

    C#基于SQLiteHelper类似SqlHelper类实

    首先,SqlHelper类在.NET框架中是用于简化SQL Server数据库操作的一个工具类,它提供了一系列方法来执行SQL语句,如ExecuteNonQuery、ExecuteReader和ExecuteScalar等。而SQLiteHelper则是针对SQLite数据库的类似...

    SQLHelper数据库处理类库

    它提供了ExecuteNonQuery、ExecuteScalar、ExecuteReader等方法,这些方法接受参数化的SQL语句,确保用户输入的数据不会被误解释为SQL命令的一部分。 3. **事务支持**:在需要执行一系列数据库操作时,SQLHelper...

    c# 调用存储过程的总结

    如果存储过程执行后返回一个结果集,可以使用SqlCommand的ExecuteReader或ExecuteScalar方法来获取。ExecuteReader返回一个SqlDataReader对象,可以遍历查询结果;ExecuteScalar则返回第一行第一列的值,适用于只...

    sqlhelper调用存储过程.rar

    2. 使用ExecuteNonQuery、ExecuteReader或ExecuteScalar方法:SqlHelper提供了这三种方法来执行存储过程。 - ExecuteNonQuery:用于执行不返回结果集的存储过程,如INSERT、UPDATE、DELETE等操作。 - ...

    通用类SQLHelper.cs

    SQLHelper.cs中有常用默认数据库连接字符串的链接方法及对ExecuteNonQuery/ExecuteScalar/ ExecuteReader三种方法的七次重载封装。。。还包含了数据库分页通用存储过程和SqlServer2005通用分页方法

    个人总结的C#初期文档

    本文档主要针对初学者,介绍了如何使用C#进行基本的SQL Server数据库交互,主要包括DBHelper类的创建和Command对象的三种方法:ExecuteScalar、ExecuteNonQuery以及ExecuteReader。 1. DBHelper类的创建: ...

    C#2005数据库开发范例源码

    对于数据的增删改查(CRUD)操作,实例会展示如何使用SqlCommand的ExecuteScalar、ExecuteNonQuery和ExecuteReader方法。ExecuteNonQuery适用于非查询操作,如INSERT、UPDATE和DELETE;ExecuteScalar返回单个值,...

    SqlHelper源码及使用实例.

    SqlHelper是一个静态类,它提供了一系列静态方法来执行数据库操作,如ExecuteNonQuery、ExecuteReader、ExecuteScalar等。这些方法分别对应不同的数据库操作:ExecuteNonQuery用于执行非查询操作(如INSERT、UPDATE...

    SqlHelper dll 文件

    SqlHelper类则将这些复杂性封装起来,提供了诸如ExecuteNonQuery、ExecuteReader、ExecuteScalar等静态方法,方便执行SQL命令。 1. ExecuteNonQuery:这个方法用于执行非查询操作,比如INSERT、UPDATE、DELETE语句...

    ADO.NET操作数据库

    在本文中,我们将深入探讨如何使用 ADO.NET 操作数据库,主要关注 DBHelper 类的创建以及 Command 对象的 ExecuteScalar、ExecuteNonQuery 和 ExecuteReader 方法。 首先,ADO.NET 的核心组件包括: 1. **...

Global site tag (gtag.js) - Google Analytics