Dynamic SQL generation is not supported against multiple base tables in WinForms(WinForms 中的多个基表不支持动态 SQL 生成)
问题描述
我在 VB.NET Windows 应用程序中工作
I am working in VB.NET Windows application
在我的加载事件中,我提供了这样的代码,用于将不同表中的数据加载到我的 DataGridView
.
In my load event I am giving code like this for loading data from different table to my DataGridView
.
为此,我使用这样的代码:
For that I use code like this:
Dim cmd As New SqlCommand("select M.Model,c.Colname,ma.Make from Model_tbl M join Color_tbl C on c.colid=M.mdlid join Make_tbl ma on ma.mkid=c.colid where mdlid=5", con.connect)
Dim builder As SqlClient.SqlCommandBuilder = New SqlCommandBuilder(da)
da.SelectCommand = cmd
da.Fill(ds, "MyTable")
If (ds.Tables(0).Rows.Count > 0) Then
DGV.DataSource = ds.Tables("MyTable")
End If
单击更新按钮时,我想将数据从我的 DataGridView
更新到不同的表.所以我在我的更新按钮事件中写了这样的代码.
When clicking update button I want to update data to different tables from my DataGridView
. So I wrote code like this in my update button event.
Me.Validate()
Me.da.Update(Me.ds.Tables("MyTable"))
Me.ds.AcceptChanges()
但在这条线上
Me.da.Update(Me.ds.Tables("MyTable"))
我收到一个错误:
不支持针对多个基表生成动态 SQL.
Dynamic SQL generation is not supported against multiple base tables.
我的代码有什么问题?
推荐答案
SqlCommandBuilder
当 SELECT 命令包含两个或多个表之间的 JOINS 时,无法生成 DataAdapter 更新命令所需的 UPDATE/INSERT 语句.
SqlCommandBuilder
cannot generate the UPDATE/INSERT statements required for the DataAdapter update command when the SELECT command contains JOINS between two or more tables.
你可以在 MSDN 上阅读
On MSDN you can read
SqlCommandBuilder 自动生成单表命令
用于协调对数据集所做的更改与关联的SQL Server 数据库.
SqlCommandBuilder automatically generates
single-table commands
that are used to reconcile changes made to a DataSet with the associated SQL Server database.
解决方法是自己提供属性的命令
The workaround is to provide by yourself the commands for the properties
SqlDataAdapter.UpdateCommand
SqlDataAdapter.InsertCommand
SqlDataAdapter.DeleteCommand
这篇关于WinForms 中的多个基表不支持动态 SQL 生成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:WinForms 中的多个基表不支持动态 SQL 生成
基础教程推荐
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01