关于ADO.net更新数据库

关于ADO.net更新数据库,第1张

看一下这样行不

SqlConnection Conn = new SqlConnection("server=localhostuid=sapwd=database=ddb")

SqlDataAdapter da = new SqlDataAdapter("select *from book",con)

DataSet ds = new DataSet()

da.Fill(ds,"book")

SqlCommand updateCmd = new SqlCommand("Update book set bookname='javascript'",Conn)

da.UpdateCommand=updateCmd

da.Update(ds)

晕了。

你不生成 updacommand 是不能直接用他的修改的。

少的东东了

-------

你在For Each DBrow1 In p_DBset1.Tables("TreesList").Rows

'dbrow1.BeginEdit()

DBrow1("details") = "aaaaa"

'dbrow1.EndEdit()

Next

---------

看你意思,你同时修改了多行,

只能用

下面的了

-------------

你在msdn中找下面的类。

注意 oracle 找oracle, sqlserver, 找对应的版本的。

《使用 CommandBuilder 生成命令 (ADO.NET)》

这个要求select语句的表 中有标识列。没有就做不到

----------------------

DbCommandBuilder 类

成员 请参见 发送反馈意见

自动生成用于协调 DataSet 的更改与关联数据库的单表命令。这是一个只能被继承的抽象类。

命名空间: System.Data.Common

程序集: System.Data(在 System.Data.dll 中)

语法

Visual Basic(声明)

Public MustInherit Class DbCommandBuilder _

Inherits Component

Visual Basic(用法)

Dim instance As DbCommandBuilder

C#

public abstract class DbCommandBuilder : Component

Visual C++

public ref class DbCommandBuilder abstract : public Component

J#

public abstract class DbCommandBuilder extends Component

JScript

public abstract class DbCommandBuilder extends Component

备注

提供 DbCommandBuilder 类是为了方便提供程序编写者创建自己的命令生成器。通过继承此类,开发人员可在自己的代码中实现提供程序特定的行为。

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

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

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

SelectCommand 还必须至少返回一个主键列或唯一的列。如果什么都没有返回,就会产生 InvalidOperationException 异常,不生成命令。

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9366724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存