暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE南大通用GBaseCommandBuilder 类

原创 淮海路小佩奇 2024-01-11
157


自动生成单表命令,当使用 GBASE南大通用DataSet 对象的方法将变更的内容写回到对应

数据库时,需使用GBASE南大通用 GBaseCommandBuilder 进行协调关联。无法继承此类。

对于该类所有成员的列表,参考 GBaseCommandBuilder 成员。

一、继承层次

System.Object

|__ System.MarshalByRefObject

|__ System.ComponentModel.Component

|__ System.Data.Common.DbCommandBuilder

|__GBase.Data.GBaseClient.GbaseCommandBuilder

 语法

[ Visual Basic ]

Public NotInheritable Class GBaseCommandBuilder _

Inherits DbCommandBuilder

[ C# ]

public sealed class GBaseCommandBuilder : DbCommandBuilder

 必要条件

命名空间:GBase.Data.GBaseClient

 线程安全性

这个类型的公共静态成员(在 Visual Basic 中为 Shared)对于多线程操

作是保证线程安全的,对于实例不保证线程安全性。

 注释

GBaseDataAdapter 不会自动生成与 DataSet 的变更相一致的 SQL 语句,必

须使用 GBaseCommandBuilder 关联。要生成 INSERT、UPDATE 或 DELETE 语句时,

需要用到 GBaseDataAdapter 的 SelectCommand 属性自动返回需要的元数据集。

SelectCommand 必须返回至少一个主键或者唯一列,如果没有返回,在生成更新

语句时就会出现 InvalidOperation 异常,且命令不会生成。

GBaseCommandBuilder 还使用 SelectCommand 引用的 Connection、

CommandTimeout 和 Transaction 属性。如果这些属性改变了,用户应该调用

RefreshSchema。否则 InsertCommand、UpdateCommand 和 DeleteCommand 属性

会保持它们原先的值。

如果用户调用了 GBaseCommandBuilder 的 Dispose 方法后,

GBaseCommandBuilder 会从 GBaseDataAdapter 断开,且不能再用于生成命令。

用户无论何时设置 GBaseDataAdapter 属性,GBaseCommandBuilder 都会把

自己注册为 OnRowUpdating 事件的监听器。

 示例

下面的例子演示了如何创建 GBaseCommandBuilder。

[Visual Basic]

Public Shared Function SelectRows(gsConnection As String,_

gsSelectQuery As String, gsTableName As String)_

As DataSet

Dim gsConn As New GBaseConnection(gsConnection)

Dim gsDataAdapter As New GBaseDataAdapter()

gsDataAdapter.SelectCommand = New GBaseCommand(gsSelectQuery,_

gsConn)

Dim cb As GBaseSqlCommandBuilder = New GbaseCommandBuilder_

(gsDataAdapter)

gsConn.Open()

Dim ds As DataSet = New DataSet

gsDataAdapter.Fill(ds, gsTableName)

' Code to modify data in DataSet here

' Without the GBaseCommandBuilder this line would fail.

gsDataAdapter.Update(ds, gsTableName)

gsConn.Close()

End Function 'SelectRows

[C#]

Public Static DataSet SelectRows(string gsConnection, string

gsSelectQuery,

string gsTableName)

{

GBaseConnection gsConn = new GBaseConnection(gsConnection);

GBaseDataAdapter gsDataAdapter = new GBaseDataAdapter();

gsDataAdapter.SelectCommand = new GBaseCommand(gsSelectQuery,

gsConn);

GBaseCommandBuilder cb = new

GBaseCommandBuilder(gsDataAdapter);

gsConn.Open();

DataSet ds = new DataSet();

gsDataAdapter.Fill(ds, gsTableName);

//code to modify data in DataSet here

//Without the GBaseCommandBuilder this line would fail

gsDataAdapter.Update(ds, gsTableName);

gsConn.Close();

return ds;

}

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论