如何利用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。
插入代码:datatable mytable=DS.Tables[0];
datarow myrow=mytable.newrow();
myrow["字段名"]=textbox1.text;
.............................
myrow["字段名"]=textbox3.text;
mytable.rows.add(myrow);
myda=new SqlDataAdapter("select * from 表名",myconn);//myda为数据适配器对象
SqlCommandBulider mycb=new SqlCommandBulider(myda);//声明SqlCommandBulider对象,和SqlDataAdapter对象相连
myda.Update(myds,"表名");//将数据集中的数据更新到数据库中
gridview1.DataSource=ds.Tables["表名"].Defaultview;
gridview1.Databind();
删除代码:
datatable mytable=DS.Tables[0];
foreach(Datarow row in mytable)
{
if (row["字段名"].tostring().trin()==textbox3.text.trim())
{ row.delete();
}
}
myda=new SqlDataAdapter("select * from 表名",myconn);//myda为数据适配器对象
SqlCommandBulider mycb=new SqlCommandBulider(myda);//声明SqlCommandBulider对象,和SqlDataAdapter对象相连
myda.Update(myds,"表名");//将数据集中的数据更新到数据库中
gridview1.DataSource=ds.Tables["表名"].Defaultview;
gridview1.Databind();