- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我使用 SqlCommandBuilder 将更新/插入/删除推送到服务器时,我是否需要调用 .GetUpdateCommand()
、.GetInsertCommand()
和 .GetDeleteCommand()
?
using (var adapter = new SqlDataAdapter("select * from MyTable", _connection))
using (var builder = new SqlCommandBuilder(adapter))
{
adapter.Fill(dt);
//Magic happens
builder.GetUpdateCommand(); //is this line necessary
builder.GetInsertCommand(); //is this line necessary
adapter.Update(dt);
}
我看过conflicting examples什么是正确的程序。我知道没有它它也能工作,但我不知道它是否在幕后做了一些特别的事情。这是必要的还是 cargo 崇拜编程?
最佳答案
我对我的测试数据库做了一些测试,看看如果我不调用 GetInsertCommand()
是否会出现错误的场景。事实证明它可能会发生,就我而言,它发生在我更新数据库中的几个不同表时。
由于某种原因,在更新我的第 4 个表时,它无法正确插入。这让我很困扰,所以我决定做更多的研究,这给了我 here .密切关注:
After the Transact-SQL statement is first generated, the application must explicitly call RefreshSchema if it changes the statement in any way. Otherwise, the GetInsertCommand will still be using information from the previous statement, which might not be correct.
这告诉我它可以在不调用它的情况下工作,但最好调用它。我试图找出为什么它有时有效,有时却无效的原因。但我一直没能完全弄明白。
关于c# - 在使用 SqlDataAdpater.Update() 之前是否需要调用 SqlCommandBuilder.GetUpdateCommand()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3119253/
我有 SQL 表作为类(class)和类(class)。 Lessons 表有主键 LessonID,Classes 表有主键 ClassID。 ClassID 列也是 Lessons 表中的外键。我
我从 msdn 得到了这个摘录 MSDN COMMAND BUILDER CLASS.在 ASP.NET 中使用快速插入、更新或从表中删除是否会很低效?! public static DataSet
我尝试从 Windows 窗体应用程序更新我的数据库。信息显示在数据 GridView 中。当我点击更新按钮时,出现异常: Connection string property has not bee
我正在尝试使用参数化查询,它采用 2 个列名和一个表名并从 sql server 数据库中检索数据。 问题是无法对表名进行参数化,所以我找到了一个使用 sqlcommandbuilder.quoteI
调用 SqlCommandBuilder.DeriveParameters 的成本是多少?我知道数据库服务器需要往返才能获取参数。调用此方法后,信息会被提供者缓存,还是会在每次调用此方法时重新查询?
我有这种情况,我需要在 sqlcommandbuilder 生成后修改插入命令,我需要这样做才能在插入后获取 scope_identity。部分代码是: adapterClients = new Sq
我有两个模式,像这样: Schema 'data' --> 保存表,没有人可以从外部访问它们 Schema 'ui' --> 包含可从外部访问的 View ;这个想法是您可以选择/删除/更新/插入这些
我不明白 SqlCommandBuilder 做它的事。我有以下代码: public void TestCommandBuilder() { var pubsDataSet = new Dat
仅供引用:我在 dotnet 3.5 SP1 上运行 我试图在执行更新(使用 SqlDataAdapter 和 SqlCommandBuilder)后将标识列的值检索到我的数据集中。 执行 SqlDa
我有一个有 6 列的数据库表。主键是由 6 列中的 5 列组成的复合键 我正在尝试使用 SqlClient.SqlCommandBuilder.GetDeleteCommand删除该行。 但是我收到以
当我使用 SqlCommandBuilder 将更新/插入/删除推送到服务器时,我是否需要调用 .GetUpdateCommand()、.GetInsertCommand() 和 .GetDelete
我正在学习 SqlCommandbuilder,但是当我尝试实现它时,出现异常。这是我的代码。 代码片段#1:工作正常 protected void btnGetStudent_Click(objec
我是一名优秀的程序员,十分优秀!