- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在我的项目中使用网格,这些网格是通过 DataSet
填充的s 和 DataTable
秒。我用 DataNavigator
关于 grid
s 用于插入、删除和更新行,我想将更改提交给 database
通过OracleDataAdapter
. Update
.我应该如何设置 CommandText
的 OracleDataAdapter
对于 update
, delete
和 insert
而只有一个 CommandText
?
最佳答案
当您使用 OracleDataAdapter 填充数据表时,您将适配器保存在一个全局变量中,您可以在需要更新后端数据库上的数据表时重用该变量。此适配器可以链接到类 OracleCommandBuilder 的对象这(如名称所解释的那样)为您构建适配器的 UpdateCommand、InsertCommand 和 DeleteCommand 属性。
当您调用 Adapter 的 Update 方法时,这些命令用于执行 sql 指令以更新您的表。
OracleDataAdapter _dataAdapter = null;
public void FillDataGridView(string conString, string selectCmd, string tableName)
{
using(OracleConnection con = new OracleConnection(conString))
{
_dataAdapter = new OracleDataAdapter();
_dataAdapter.SelectCommand = new OracleCommand(selectCmd, con);
OracleCommandBuilder cb = new OracleCommandBuilder(_dataAdapter);
con.Open();
DataSet ds = new DataSet();
_adapter.Fill(ds, tableName);
dataGridView1.DataSource = ds.Tables[0];
}
}
然后当你决定更新
// The OracleCommandBuilder has initialized the Insert/Update/Delete
// command of the adapter thus the Update works as expected
DataTable dt = dataGridView1.DataSource as DataTable;
_adapter.Update(dt);
CommandBuilder 可以为您做的事情是有限的。特别是如果 select 命令没有检索表的主键,或者如果 select 命令将表连接在一起,则 CommandBuilder 无法创建相关命令,您需要手动定义它们
关于c# - 用于更新数据集的 OracleDataAdapter CommandText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787727/
只有在我将工作代码更改为使用数据 View 而不是文本框来显示单行数据之后,我才遇到这个问题。 我有以下内容: static SqlConnection dbConnection = new SqlC
VB.NET,带有 MySQL 的 Winforms 应用程序。由于资金和连接可靠性的限制,在我的应用程序中,我添加了通过使用邮件附件进行更新的功能。一切都运转良好。在应用程序表单加载中,即使我让它检
我想知道我可以给 CommandText 字段的文本长度是否有一些限制? 我正在使用 MySqlConnection 和 MySqlCommand。 最佳答案 检查此链接 Mysql Dataprov
在 .NET 中以编程方式替换参数值后,是否有办法获取 CommandText? 假设我们有一个命令: let cmd = conn.CreateCommand() cmd.CommandText <
此代码之前运行良好。然而,我需要事务化我的读写,当我试图通过事务化我的读取来开始该过程时,我遇到了这个 commandText 未初始化的错误。 确切错误,第 156 行是 DA.Fill(tbl);
我正在尝试构建一个 SQL 查询并将一个字符串作为参数传递。但是,我遇到了不正确的语法错误。我已经打印出这些值,但对我来说一切都很好。 我有一个字符串“sqlString”,它是通过一系列连接构建的,
Reader 总是null,我不知道为什么。 在使用一种方法连接之前,一切正常。 代码: private MySqlConnection connection; private MySqlComman
我在我的项目中使用网格,这些网格是通过 DataSet 填充的s 和 DataTable秒。我用 DataNavigator关于 grid s 用于插入、删除和更新行,我想将更改提交给 databas
我向自己保证我不会发布这个,因为我有一种妄想的想法,认为我太适合程序员了,但我们到了。 我已经更改了上周早些时候发布的内容,试图弄清楚如何编写一个 VBA 函数,该函数将数据从 Excel 范围写入
我对将 SQL 合并到 VBA 中相当缺乏经验,但是对于我的下一个技巧,我想根据自己的喜好排列表中的列。 Sub ExecuteQuery1() Dim SQLstr As String SQLstr
现在我正在编写板球计分软件,所有详细信息都保存在数据库中。我想知道如何在单击“Wicket”时向数据库中的“W”字段添加 +1。 cmd.CommandText = "UPDATE database.
我有一个连接到 TDataSetProvider 的 TClientDataSet,而 TDataSetProvider 又连接到 TAdsQuery。我设置 SQL 命令,然后打开 ClientDa
我为 System.Data.Common.DbProviderServices 类创建了一个包装器。我需要在此包装器中编辑 DbCommand.CommandText。如何在 CreateDbCom
标题有点粗俗,我会尽力解释得更好。因此,在我的应用程序中,我有两个连接字符串,一个用于本地数据库,另一个用于 Web 数据库。这两个数据库必须使用相同的记录进行更新。现在,在我的应用程序中,当我在本地
我想在 C# 中基于 OracleSQL 创建简单的登录 + 注册表单。我正在使用 Oracle 的 ManagedDataAccess 客户端(来自 NuGet)。 我试过这样使用它: Oracle
我正在尝试使用代码向数据库中插入一行,然后在单击按钮后立即显示该代码。我正在使用 C#。 comm.CommandText = "INSERT INTO Store (FirstName, LastN
procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery1.close; ADOQuery1.SQL.text:
我是sql和C#的新手,并且im在executenonquery commandtex中出错。我不知道错误在哪里。你们可以帮我吗? private void submitBtn_Click(objec
昏暗的SQL作为字符串 sql = "insert into transactions (`transid`) values('" + Text1.Text + "')" sql = sql & ";
是否可以从纯命令文本解析 sql 参数? 例如 //cmdtext = SELECT * FROM AdWorks.Countries WHERE id = @id SqlCommand sqlc =
我是一名优秀的程序员,十分优秀!