首页天道酬勤oledbdataadapter用法,OleDbDataAdapter

oledbdataadapter用法,OleDbDataAdapter

admin 08-18 22:40 369次浏览

我仿照网上的例子,用gridcontrol显示数据,然后用DataSet里的rows.Delete()方法删除数据,显示的时候gridcontrol是可以删除的,但是后台数据库数据没有删除。

我加了一个OleDbDataAdapter的update方法,程序报错。

后来对比 了一下,发现我错在亮点:

1.update(DataSet dataset, String 表名);

2.OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);    少了这一句,非常关键。

MSDN了一下OleDbCommandBuilder是干嘛的了,说明如下

OleDbCommandBuilder 类 .NET Framework 2.0     其他版本     3(共 3)对本文的评价是有帮助 - 评价此主题  

自动生成用于协调对 DataSet 的更改与关联数据库的单表命令。无法继承此类。

备注

OleDbDataAdapter 不会自动生成为了使对 DataSet 所作的更改和相关联的数据源协调起来所必须的 SQL 语句。但是,如果设置了 OleDbDataAdapter 的 SelectCommand 属性,那么就可以创建 OleDbCommandBuilder 对象,来自动生成 SQL 语句以更新单表。然后,OleDbCommandBuilder 将生成其他任何未设置的 SQL 语句。

每当设置了 DataAdapter 属性,OleDbCommandBuilder 就将其本身注册为 RowUpdating 事件的侦听器。一次只能将一个 OleDbDataAdapter 与一个 OleDbCommandBuilder对象(或相反)互相关联。

为了生成 INSERT、UPDATE 或 DELETE 语句,OleDbCommandBuilder 会自动使用 SelectCommand 属性来检索所需的元数据集。如果在检索元数据后(例如在第一次更新后)更改 SelectCommand,则应调用 RefreshSchema 方法来更新元数据。

OleDbCommandBuilder 还使用由 SelectCommand 引用的 Connection、CommandTimeout 和 Transaction 属性。如果修改了一个或多个这些属性或者替换了 SelectCommand本身,则用户应调用 RefreshSchema。否则,InsertCommand、UpdateCommand 和 DeleteCommand 属性都保留它们以前的值。

如果调用 Dispose,则会解除 OleDbCommandBuilder 与 OleDbDataAdapter 的关联,并且不再使用生成的命令。

 

 

 

 

网上例子如下所示:

http://www.25175.com/200609/25175/25175_html/2006-11/594.html

如何用OleDbDataAdapter来对数据库进行操作?

 

请问如何用OleDbDataAdapter来对数据库进行删除、修改和添加?

 

OleDbDataAdapter是DataSet和数据源之间建立联系的重要纽带。用它我们可以对数据库进行删除、修改和添加等操作,下面以删除(Delete)为例,说说操作步骤:     1、用OleDbConnection conn = getConn()语句建立数据库连接;     2、实例化OleDbDataAdapter对象,用select语句取得要删除的记录。而不是使用delete语句;     3、建立一个DataSet对象,并把执行select语句得到的记录添加到其中;

4、建立OleDbCommandBuilder对象,并与前面的OleDbDataAdapter对象关联,以监视RowUpdating事件的发生。在删除了指定的记录后,要通过执行OleDbDataAdapter对象的Update命令来更新数据库,语句如下:

OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);     5、删除DataSet中包含表的特定记录     6、执行OleDbDataAdapter对象的Update命令更新数据库:

myDataAdapter.Update(ds,"notes")

7、关闭数据库连接。

以上操作步骤不仅适合于Delete操作,同样适合Insert、Update等操作。下面我们以通过OleDbDataAdapter来执行删除(Delete)特定的数据库记录为例,看看具体代码:

public Boolean DelNote(string delid)

//删除特定记录,通过string类型的ID删除字段 { Boolean tempvalue=false;       try       {               OleDbConnection conn = getConn();

  //连接数据库.getConn():得到连接对象               string selectstr = "select * from notes where id=" + delid; OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(selectstr,conn); OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter); //建立OleDbCommandBuilder          DataSet ds = new DataSet();   

//建立DataSet()实例               myDataAdapter.Fill(ds,"notes");        
              foreach(DataRow dr in ds.Tables["notes"].Rows)

//由于在开始选择了所有的记录,此处用集合方式
              {                                    if(dr["id"].ToString().Equals(delid))                     {                         dr.Delete();                     }                   }               myDataAdapter.Update(ds,"notes");                                       conn.Close();           tempvalue=true;           return(tempvalue);

//执行成功返回TRUE,否则返回FALSE     }

catch(Exception e)           {               throw(new Exception("噢,数据库删除出错:" + e.Message)) ;       } }

转载于:https://www.cnblogs.com/dscarlett/archive/2012/11/27/2790917.html

jquery如何去掉首尾空格C#二进制序列化实例分析Qt专栏之模态与非模态对话框的实现
OleDbDataAdapter 具体使用案例,大数据具体应用案例 oledbdataadapter用法,OleDbDataAdapter
相关内容