ASP.NET中数据库的操作初步----DataSet操作数据库

本文详细介绍了如何在ASP.NET中使用DataSet和DataAdapter进行数据库操作,包括打开、填充、修改和提交数据。DataSet作为数据存储和远程处理的工具,通过OleDbDataAdapter与数据库建立联系。文章通过实例演示了如何执行SQL查询,添加、删除和更新记录,强调了DataSet在WEB开发中的重要性,以及与ADO的区别。
摘要由CSDN通过智能技术生成

蛙推荐:ASP.NET中数据库的操作初步----DataSet操作数据库


前面我们已经说了如何操作数据库,但几乎全部是通过OleDbCommand和OleDbDataReader来做的,这次我们说说如何通过OleDbDataAdapter来操作数据库!关于OleDbDataAdapter的用法实际上我们在以前已经讲过了,由于OleDbDataAdapter是DataSet和数据源之间建立联系的一个桥梁,而DataSet用于对单层数据、XML 数据和关系数据进行存储、远程处理和编程!。

我们曾经讲过利用Command来对数据库进行增加、删除和修改操作,但是我们利用DataSet和DataAdapter能够更加方便的对数据库进行操作,基本是我们可以认为DataSet是专门为WEB而设计的,这也是ADO.NET和ADO的一个重要的区别。

下面是DataSet和SQL数据的的关系图, 通过这个图我们可以看出DataSet和DataAdapter以及SQL数据库的关系。 


下面我们来讲解一下如何利用DataSet和DataAdapter来操作上据库

MyConnection.Open(); //打开数据库,请参考前面文章的内容 

MyCommand.Connection = MyConnection; //设置Command,请参考前面文章的内容

MyCommand. CommandText = “select * from admin”; //设置Command,参考前面文章的内容

OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定义OleDbDataAdapte对象

MyDataAdapter.SelectCommand = MyCommand; //设置OleDbDataAdapte对象的SelectCommand属性

System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定义DataSet 

MyDataAdapter.Fill(MyDataSet,"admin"); //通过OleDbDataAdapte对象的SelectCommand属性填充MyDataSet

MyConnection.Close(); //关闭数据库


整个过程分以下几步: 

1.建立数据库连接(打开数据库,请参考前面文章的内容) 

2.建立OleDbDataAdapter对象!

3.实例化OleDbDataAdapter对象! 

4.建立一个DataSet对象,执行SQL语句得到的表添加到其中 

5.关闭数据库连接 

通过上面的步骤我们就可以使用DataBind将DataSet中的数据绑定到特定的控件上了!(下一章我们将讲解如何邦定数据库)

我们说过但是我们可以利用DataSet和DataAdapter能够更加方便的对数据库进行操作,如何通过OleDbDataAdapter来执行数据库的操作的,我们只需要对DataSet中的数据进行增加、删除、修改等操作,然后在将DataSet提交给数据库即可

//利用利用DataSet和DataAdapter操作数据库

public Boolean DoDB() 



MyConnection.Open(); //打开数据库,请参考前面文章的内容 

MyCommand.Connection = MyConnection; //设置Command,请参考前面文章的内容

MyCommand. CommandText = “select * from admin”; //设置Command,参考前面文章的内容

OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter(); //定义OleDbDataAdapte对象

MyDataAdapter.SelectCommand = MyCommand; //设置OleDbDataAdapte对象的SelectCommand属性

System.Data.DataSet MyDataSet = new System.Data.DataSet(); //定义DataSet 

MyDataAdapter.Fill(MyDataSet,"admin"); //通过OleDbDataAdapte对象的SelectCommand属性填充MyDataSet


OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter);//关联DataSet和数据库的操作的,必不可少

foreach(DataRow dr in MyDataSet.Tables["Admin"].Rows) 



if(dr["Admin_Code"].ToString().Trim().Equals("a")) 



dr.Delete(); //删除DataSet 中的行



}

MyDataSet.Tables["Admin"].Rows[0][0] = "ss";//更新DataSet中第一行第一列的值

string [] dd = new String[3]{"a","b","v"};

MyDataSet.Tables["Admin"].Rows.Add(dd);//增加一行

MyDataAdapter.Update(MyDataSet,"Admin");//将DataSet中”Admin”表中的数据提交给数据库,完成数据库的更新

MyConnection.Close();//关闭数据库 




这个程序和我们前面用到的利用Command的delete、insert、update例程是执行同样的功能的,我这里改成了用MyDataAdapter来达到同样的效果! 


要通过MyDataAdapter执行对数据库的操作,我们要有下面的几步: 


1. 建立数据库连接MyConnection

2. 实例化OleDbDataAdapter对象! 

3. 建立一个DataSet对象,并把执行select语句得到的记录添加到其中 

4. 建立OleDbCommandBuilder对象! 并让它与我们前面的OleDbDataAdapter对象关联!语句如下:OleDbCommandBuilder MyCommandBuild = new OleDbCommandBuilder(MyDataAdapter); 

5. 对DataSet中包含表的特定记录进行增加、删除、修改 


6. 执行OleDbDataAdapter对象的Update命令更新数据库,语句如下: MyDataAdapter.Update(ds,"notes"); 

7. 关闭数据库连接 


总结:

DataSet是ADO.NET中非常重要的内容,也是ADO.NET和ADO的区别的一个重要表现,特别适合成批的数据操作,也是数据棒定的重要来源。OleDbDataAdapter是DataSet和数据源之间建立联系的一个桥梁,要熟练的使用DataSet我们需要熟练的掌握OleDbDataAdapter。下一章我们将讲述Data


========此贴于2004-3-7 1:45:25被蛙蛙王子编辑过======== 

作者:蛙蛙王子  回复日期:2004-03-07 01:48 
本贴地址:http://club.yesky.com/bbs/jsp/view.jsp?articleID=299660 

   蛙蛙推荐:ASP.NET中数据库的操作初步----连接并且打开数据库


对于用过beta2版的网友来说,学习本文的内容将会是十分的简单,因为.net正式版和beta2版的差别不大,所以对于beta2中的程序你几乎可以不作修改(或者只做少量修改)就可以再正式版中正常的运行。

在这里我们来讲一下怎样打开数据库,我们不赞同利用写字本或者editplus等文本编辑器来编写asp.net,所以本文的讲述全是在VS.NET开发工具上的。

建立一个新的数据库连接,首先我们从工具箱工双击OleDbConnection 或者 双击 SqlConnection 如图所示 


 


注意:OleDbConnection 和 SqlConnection的区别在于:OleDbConnection适合于连接任何类型的数据库(如Oracle,SQL Server,ACCESS等等),而SqlConnection是专门用来连接SQL Server(MS SQL)数据库的,据说效率比OleDbConnection高。如果你的数据库是MS SQL 那么你就双击SqlConnection吧,其他数据库就用OleDbConnection吧。同样的道理SqlDataAdapter,SqlCommand是专门用于(MS SQL)数据库的,而OleDbDataAdapter, OleDbCommand适用于所有的数据库,如果你双击的是SqlConnection,那么在今后的数据库操作中你只能用SqlDataAdapter,SqlCommand,同样的道理如果你双击的是OleDbConnection,那么在今后的数据库操作中你只能用OleDbDataAdapter, OleDbCommand。在这里我们选择OleDbConnection。

当我们双击OleDbConnection后在窗口的下端将会出现一个名为oleDbConnection1的数据库连接源 


我们可以在属性窗口改变oleDbConnection1的名称为MyConnection,


连接数据库在关键的步骤为:从上图中的ConnctionStr中选择< 新建连接…> 然后将会弹出如下窗口:


选择好数据库的类型 “下一步”后 选择数据库的正确位置 如下图


(测试连接 成功后)单击确定,然后(双击编辑窗口任意空白位置)打开对应的cs文件,将会看到程序中自动加入了

protected System.Data.OleDb.OleDbConnection MyConnection;代码

而且在private void InitializeComponent()中加入了

this.MyConnection = new System.Data.OleDb.OleDbConnection();

// 

// MyConnection

// 

this.MyConnection.ConnectionString = @"Provider=SQLOLEDB.1;Persist Security

Info=False;User ID=sa;Initial Catalog=house;Data Source=CYH;Use Procedure

for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=CYH;Use

Encryption for Data=False;Tag with column collation when possible=False";

//

现在要打开数据库变得很简单了,你只要使用

MyConnection.Open(); //数据库就打开了

MyConnection.Close();//关闭数据库

如你可以在private void Page_Load(object sender, System.EventArgs e)打开数据库

private void Page_Load(object sender, System.EventArgs e)

{

MyConnection.Open();

// 在此处放置用户代码对数据库进行增加、删除、修改、查询等操作

MyConnection.Close();


**********************************************************************

用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法:

一、ASP的对象存取数据库方法

  在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command

Connection:负责打开或连接数据

Recordset:负责存取数据表

Command:负责对数据库执行行动查询命令


二、连接各数据库的驱动程序

  连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。


ODBC链接


适合数据库类型 链接方式 

access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;" 

dBase  "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;" 

Oracle  "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;" 

MSSQL server "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;" 

MS text  "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;" 

Visual Foxpro "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;" 

MySQL "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;" 


OLEDB链接


适合的数据库类型 链接方式 

access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;" 

Oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;" 

MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;" 

MS text  "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'" 


而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:


dim conn

set conn = server.createobject("adodb.connection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值