`
tomhibolu
  • 浏览: 1375884 次
文章分类
社区版块
存档分类
最新评论

ADO.NET操作数据库

 
阅读更多

在ADO.NET里,这些步骤有很大的变化。ADO.NET的最重要概念之一是DataSet。DataSet是不依赖于数据库的独立数据集合。所谓独立,就是:即使断开数据链路,或者关闭数据库,DataSet依然是可用的。
连接数据库
ADO.NET连接数据库的步骤就相应地改变了:
1、取得连接字符串;
2、创建一个数据库链路;
3,打开数据连接;
4,数据库操作;
5,关闭数据连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
SQLConnection myConnection = new SQLConnection(strConnString);
MyConnection.Open();
数据库操作 ………………
myConnection.Close();

数据集DataSet的操作
1,取得连接字符串;
2,建立数据连接;
3,实例化DataAdapter对象;
4,建立一个DataSet实例;
5,将DataAdapter的得到的数据集填充到DataSet中;
6,关闭数据连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
SQLConnection myConnection = new SQLConnection(strConnString);
string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
SQLDataAdapter myDataAdapter = new SQLDataAdapter(mySelectText, myConnection);
DataSet ds = new DataSet();
myDataAdapter.Fill(ds,"notes");// notes是取得的表的名称,可自定义
myConnection.Close();

DataSet中储存多个数据表
1,取得连接字符串;
2,建立数据连接;
3,实例化DataAdapter对象DataAdapter1,DataAdapter2;
4,建立一个DataSet实例;
5,将DataAdapter1和DataAdapter2得到的数据集填充到DataSet中;
6,关闭数据连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
SQLConnection myConnection = new SQLConnection(strConnString);
string mySelectText1= "SELECT * FROM Categories ORDER BY CategoryID";
string mySelectText2= "SELECT * FROM Name ORDER BY NameID";
SQLDataAdapter myDataAdapter1 = new SQLDataAdapter(mySelectText1, myConnection);
SQLDataAdapter myDataAdapter2 = new SQLDataAdapter(mySelectText2, myConnection);
DataSet ds = new DataSet();
myDataAdapter1.Fill(ds," Categories ");
myDataAdapter2.Fill(ds," Name ");
myConnection.Close();

添加数据库纪录
1, 建立数据库连接;
2, 实例化OleDbDataAdapter对象!
3, 建立一个DataSet对象,并把执行select语句得到的记录添加到其中;
4, dataGrid控件绑定DataSet数据集,并根据要求显示;
5, 建立OleDbCommandBuilder对象,并让它与我们前面的OleDbDataAdapter对象关联,语句如下:OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter); (只需声明该对象,不需任何其他操作,CommandBuilder 对象可以根据 Select 语句在运行时生成ADD命令);
6, 在 DataSet中添加新的纪录;
7, 执行OleDbDataAdapter对象的Update命令更新数据库,语句如下: myDataAdapter.Update(ds,"notes");
8, 关闭数据库连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
OleDbConnection myConnection = new OleDbConnection(strConnString);
string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySelectText, myConnection);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet,"notes");// notes是取得的表的名称,可自定义
dataGrid1.DataSource=myDataSet;// dataGrid1数据源绑定数据集myDataSet
dataGrid1.DataMember=" notes ";//指定运行后直接显示表notes的数据
OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter);
DataRow dr=this.myDataSet.Tables[0].NewRow();//在指定的myDataSet的表中创建一个新的行的实例dr
dr["id"] ="1";
dr["name"] ="pwx";
dr["name_work"] ="tt";
dr["name_data"] ="2001-02-21";
this.myDataSet.Tables[0].Rows.Add(dr);//将dr的值添加到myDataSet的表中
myDataAdapter.Update(myDataSet," notes ");// myDataAdapter调用Update方法更新数据库
myConnection.Close();


删除特定的数据库记录
1, 立数据库连接;
2, 实例化OleDbDataAdapter对象!
3, 建立一个DataSet对象,并把执行select语句得到的记录添加到其中;
4, dataGrid控件绑定DataSet数据集,并根据要求显示;
5, 建立OleDbCommandBuilder对象,并让它与我们前面的OleDbDataAdapter对象关联,语句如下:OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter); (只需声明该对象,不需任何其他操作,CommandBuilder 对象可以根据 Select 语句在运行时生成DELETE命令);
6, 删除DataSet中包含表的特定记录;
7, 执行OleDbDataAdapter对象的Update命令更新数据库,语句如下: myDataAdapter.Update(ds,"notes");
8, 关闭数据库连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
OleDbConnection myConnection = new OleDbConnection(strConnString);
string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySelectText, myConnection);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet,"notes");// notes是取得的表的名称,可自定义
dataGrid1.DataSource=myDataSet;// dataGrid1数据源绑定数据集myDataSet
dataGrid1.DataMember=" notes ";//指定运行后直接显示表notes的数据
OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter);
int row1=this.dataGrid1.CurrentCell.RowNumber;//取得当前行的行号
myDataSet.Tables[“notes”].Rows[row1].Delete();//删除dataset中表notes当前的行
myDataAdapter.Update(myDataSet," notes ");// myDataAdapter调用Update方法更新数据库
myConnection.Close();

注意:在用Visual C#删除记录的时候要注意的是:必须从二个方面彻底删除记录,即从数据库和用Visual C#编程时产生的一个DataSet对象中彻底删除。在程序设计的时候,如果只是删除了DataSet对象中的记录信息,这种删除是一种伪删除。这是因为当他退出程序,又重新运行程序,会发现,那个要删除的记录依然还存在。这是因为DataSet对象只是对数据表的一个镜像,并不是真正的记录本身。但如果只是从数据库中删除记录,因为我们此时程序用到的数据集合是从DataSet对象中读取的,子DataSet对象中依然保存此条记录的镜像。所以就会发现,我们根本没有删除掉记录,但实际上已经删除了。此时只有退出程序,重新运行,才会发现记录已经删除了。该例子建立OleDbCommandBuilder对象,CommandBuilder 对象可以根据 DataSet数据集中的改变在Select 语句在运行时自动生成数据库操作命令。

修改数据纪录
1, 数据库连接;
2, 实例化OleDbDataAdapter对象!
3, 建立一个DataSet对象,并把执行select语句得到的记录添加到其中;
4, dataGrid控件绑定DataSet数据集,并根据要求显示;
5, 建立OleDbCommandBuilder对象,并让它与我们前面的OleDbDataAdapter对象关联,语句如下:OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter); (只需声明该对象,不需任何其他操作,CommandBuilder 对象可以根据 Select 语句在运行时生成UpDate命令);
6, 通过对dataGrid中的数据的修改而修改DataSet中的数据;
7, 执行OleDbDataAdapter对象的Update命令更新数据库,语句如下: myDataAdapter.Update(ds,"notes");
8, 关闭数据库连接;
代码如下:
string strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa";
OleDbConnection myConnection = new OleDbConnection(strConnString);
string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySelectText, myConnection);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet,"notes");// notes是取得的表的名称,可自定义
dataGrid1.DataSource=myDataSet;// dataGrid1数据源绑定数据集myDataSet
dataGrid1.DataMember=" notes ";//指定运行后直接显示表notes的数据
OleDbCommandBuilder mybuilder=new OleDbCommandBuilder(myDataAdapter);
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飞刀大哥";//修改MyDataSet中表MyDataSet的值,Row[0]["UserName"]是指定的第一行字段为username的列。
………………直接在dataGrid1上修改与myDataSet绑定的数据………………
myDataAdapter.Update(myDataSet," notes ");// myDataAdapter调用Update方法更新数据库
myConnection.Close();

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics