有关网站中操作数据库的几种方法的使用情况

c#

数据查询输出

1

、使用

ExecuteReader()

操作数据库

2、使用ExecuteNonQuery()操作数据库3、使用ExecuteScalar()操作数据库4、使用DataSet

数据集插入记录、更新数据。

1、使用ExecuteReader()操作数据库,执行查询操作的利器

ExecuteReader相比与DataSet而言,DataReader

具有较快的访问能力,并且能够使用较少的服务器资源。DataReader对象提供了“游标”形式的读取方法,当从结果中读取了一行,则“游标”会继续读取到下一行。通过Read方法可以

判断数据是否还有下一行,如果存在数据,则

继续运行并返回true,否则返回false。 DataReader可以提高执行效率,基于序号的查询可以使用DataReader.

当使用ExecuteReader()操作数据库时,会遇到知道某列的名称而不知道某列的号的情况,这种情况可以通过使用

DataReader对象的GetOrdinal()方法获取相应的列号。此方法接收一个列名并返回此列名所在的列号。

示例代码:

string str = "server=‘(local)‘;database=‘mytable‘;uid=‘sa‘;pwd=‘sa‘"; //创建连接字串SqlConnection con = new SqlConnection(str); //创建连接对象con.Open(); //打开连接

string strsql = "select * from mynews where id=1 order by id desc"; //创建执行SQL

语句SqlCommand cmd = new SqlCommand(strsql, con); //创建

Command对象SqlDataReader rd = cmd.ExecuteReader(); //

创建DataReader对象int id = rd.GetOrdinal("title"); // 使用GetOrdinal方法获取title列的列号

while (rd.Read()) //遍历DataReader对象{ Label1.Text = "

新闻

id是" + rd["id"]; //输出对象的值} 使用

ExecuteReader()

操作数据库,通常情况下是使用

ExecuteReader()

进行数据库查询操作,使用ExecuteReader()查询数据库能够提升查询效率,而如果需要进行数据库事务处理的话,ExecuteReader()方法并不是理想的选择。

2、使用ExecuteNonQuery(),ExecuteScalar()操作数据库,执行增删改操作的利器

ExecuteNonQuery()通常情况下为数据库事务处理的首选,当需要执行插入、删除、更新等操作时,首选 ExecuteNonQuery(),ExecuteNonQuery()

执行成功是返回的是一受影响的行数,对于“CREATE TABLE”和“DROP TABLE”语句,返回值为0,而对于所有其他类型的语句,返回值为-1。ExecuteNonQuery()操作数据时,可以不使用DataSet直接更改数据库中的数据。ExecuteScalar()

方法也用来执行SQL语句,但是ExecuteScalar()执行SQL语句后的返回值与 ExecuteNonQuery()并不相同,ExecuteScalar()方法的返回值

的数据类型是Object类型。如果执行的SQL

语句是一个查询语句(SELECT),则返回结果是查询后的第一行的第一列,如果执行的SQL语句不是一个查询语句,则会返回一个未实例化的对象,必须通过类型转换来

显示。通常情况下ExecuteNonQuery()操作后返回的是一个值,而ExecuteScalar()操作后则会返回一个对象,ExecuteScalar()经常使用于当需要返回单一值时的情况。

例如当插入一条数据信息时,常常需要马上知道刚才插入的值,则可以使用ExecuteScalar()方法。

示例代码:string str = "server=‘(local)‘;database=‘mytable‘;uid=‘sa‘;pwd=‘sa‘"; //创建连接字串SqlConnection con = new SqlConnection(str); //创建连接对象con.Open(); /打开连接

string strsql = "insert into mynews values (‘刚刚插入的id是多少?‘) SELECT @@IDENTITY as ‘bh‘"; //插入语句SqlCommand cmd = new SqlCommand(strsql, con); //执行语句Label1.Text = "刚刚插入的行的id是" + cmd.ExecuteScalar(); //返回赋值上述代码使用了SELECT @@IDENTITY语法获取刚刚执行更新后的

id值,然后通过使用ExecuteScalar()方法来获取刚刚更新后第一行第一列的值。

4、使用DataSet数据集插入记录、更新数据。使用

INSERT语句能够完成数据插入,使用

DataSet对象也可以完成数据插入。为了将数据库的数据填充到DataSet中,则必须先使用DataAdapter对象的方法实现填充,当数据填充完成后,开发人员可以将记录添加到

DataSet对象中,然后使用Update

方法将记录插入数据库中。使用DataSet更新记录的步骤如下

所示:q 创建一个

Connection对象。q 创建一个DataAdapter

对象。q 初始化适配器。q 使用数据适配器的Fill方法执行SELECT命令,并填充DataSet。

q 使用DataTable对象提供的NewRow方法创建新行。q

将数据行的字段设置为插入的值。q 使用DataRowAdd类的Add

方法将数据行添加到数据表中。q 把DataAdapter类的InsertCommand属性设置成需要插入记录的INSERT

语句。q 使用数据适配器提供的

Update

方法将新记录插入数据库。q 使用DataSet类提供的AcceptChanges方法将数据库与内存中的数据保持一致。

Insert 示例代码:

string str = "server=‘(local)‘;database=‘mytable‘;uid=‘sa‘;pwd=‘sa‘"; //创建连接字串

SqlConnection con = new SqlConnection(str); //创建连接对象

con.Open(); //打开连接

string strsql = "select * from mynews"; // 编写SQL语句

SqlDataAdapter da = new SqlDataAdapter(strsql, con); //创建适配器

SqlCommandBuilder build = new SqlCommandBuilder(da); //构造SQL语句

DataSet ds = new DataSet(); // 创建数据集

da.Fill(ds, "datatable"); //填充数据集

DataTable tb = ds.Tables["datatable"]; //创建表

tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] }; //创建表的主键

DataRow row = ds.Tables["datatable"].NewRow(); //创建DataRow

row["title"] = "使用DataSet插入新行"; //赋值新列

row["id"] = "15";

ds.Tables["datatable"].Rows.Add(row);

da.Update(ds, "datatable");

Update示例代码:

string str = "server=‘(local)‘;database=‘mytable‘;uid=‘sa‘;pwd=‘sa‘"; //创建连接字串

SqlConnection con = new SqlConnection(str); //创建连接对象

con.Open(); //打开连接

string strsql = "select * from mynews"; // 编写SQL语句

SqlDataAdapter da = new SqlDataAdapter(strsql, con); //创建适配器

SqlCommandBuilder build = new SqlCommandBuilder(da); //构造SQL语句

DataSet ds = new DataSet(); // 创建数据集

da.Fill(ds, "datatable"); //填充数据集

DataTable tb = ds.Tables["datatable"]; //创建表

tb.PrimaryKey = new DataColumn[] { tb.Columns["id"] }; //创建表的主键

DataRow row = tb.Rows.Find(1);

row["title"] = "新标题";

da.Update(ds, "datatable");

时间: 2024-10-09 20:39:16

有关网站中操作数据库的几种方法的使用情况的相关文章

Android开发之使用sqlite3工具操作数据库的两种方式

使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/fengyuzhengfan/article/details/40193123 在Android SDK的tools目录下提供了一"sqlite3.exe工具,它是一个简单的SQLite数据库管理工具,类似于MySQL提供的命令行窗口在有些时候,开发者利用该工具来査询. 管理数据库. 下面介绍两种方式: 第

C++连接mysql数据库的两种方法

现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的

将Excel数据导入mysql数据库的几种方法

将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面和大家分享一下: 一.用java来将Excel表格中的数据转到mysql中 这是我们用的第一种方法,就是在java找你感谢个类,然后这个类会将Excel表格中的数据存储到内存里,然后再从内存中读出来插入到数据库中,但是要 注意了,这里是存储到String[ ]数组里面,所以取出来的数据也是Strin

DataGridView编辑后立即更新到数据库的两种方法

DataGridView控件是微软预先写好的一个显示数据的控件,功能非常强大,可以显示来自数据库表的数据和XML等其他来源的数据.最近在做一个迷你超市管理系统,要大量用到这个控件.所以花时间好好研究了下. 这是迷你超市管理系的库存数据DataGridView,用户一定会想如果能直接在DGV中修改数据就好了. 是的,这是一个很好的想法,这个功能微软早就帮我们想到了,现在可以使两种方法加以实现.下面就来介绍一下他们. 第一张方法:基于DataAdapter对象创建一个CommandBulider,用

IOS开发中数据持久化的几种方法--NSUserDefaults

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

在Word中去除超链接的两种方法

本文来自e良师益友网 不少朋友都有这样一个疑问:在Word中输入网站地址,回车之后,先前输入的地址就自动转变为了蓝色的超链接,如果我们不想这样,该如何设置呢?下面,简单的介绍两种方法给大家参考. 方法一:运用自动更正选项 1.启动Word2003,在空白处直接输入网站地址之后,自动变为蓝色的超链接形式,我们仔细发现,首字母下有一道横线,光标移动至此,显示自动更正选项. 2.单击自动更正选项,有三个可供选择的,选择控制自动更正选项. 3.在键入时自动套用格式选项卡中,取消勾选Internet及网络

token的作用以及ajax中传递token的几种方法

目录 1.ajax中传递token的作用 2.ajax中传递token的几种方法 内容 1.ajax中传递token的作用 作用一:防止表单重复提交 主要原理是:用户提交表单后,会携带token到服务器,服务器将session中的token和用户请求带过来的token进行比较,如果相同,会将session中的token进行更新.若用户重复提交,则用户之后发过来的请求的token和服务器session中的token是不一致的,所以会导致之后的表单提交操作失败. 作用二:防止anti csrf 攻击

网站设计形式提升的五种方法

本文由e良师益友网提供 提到网页设计,最先想到的是当今主流的韩国设计和扁平化设计,当然个性化排版.视频代替文本.全屏大视野.滚动视差.多平台全适应等设计形式已经进入了我们的视野.西方简单.功能性的美学精神”少即是多”这一设计理念攻占了我们的大脑,很多时候,在开始做设计之前脑子里会来回浮现这些风格的设计.怎样在主流设计方式中做出有自己特色的网站呢?我们从以下几点介绍在大环境下提升网站设计形式的方法. 1.赋予民族文化特点在众多的设计师追逐主流风格的同时,民族文化感觉的设计越来越少,不光在国内,在世

a 中调用js的几种方法

我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行javascript语句 2. a href="javascript:void(0);"