【问题标题】:Update tables in a SQL Server database by using vb.net使用 vb.net 更新 SQL Server 数据库中的表
【发布时间】:2020-03-30 13:50:36
【问题描述】:

我有一个包含两个表的 SQL Server 数据库:

tblEmp 列:

EmpNum, EmpName, EmpAge, EmpAdress, EmpDegree, EmpJobTitle, EmpPhone 

以及用于设置两个表之间关系的列UnitID

tblUnits 与列:

UnitID, UnitName

VB中的代码是:

Public Class Form1
    Dim con As New SqlConnection("server=.....etc")
    Dim adapter As SqlDataAdapter
    Dim dt As New DataTable
    Dim cmdb As New SqlCommandBuilder

    Private Sub btnUpdate_Click.......
        Dim row As DataRow = dt.Rows.Find(txtNum.Text)
        row(0) = txtNum.Text
        row(1) = txtName.Text
        row(2) = txtAge.Text
        row(3) = txtAdress.Text
        row(4) = txtDegree.Text
        row(5) = txtJob.Text
        row(6) = txtPhone.Text
        row(7) = cmbunits.Text
        cmdb = New SqlCommandBuilder(adapter)
        adapter.Update(dt)

我收到此错误:

附加信息:不支持针对多个基表生成动态 SQL。

【问题讨论】:

    标签: sql-server vb.net


    【解决方案1】:

    命令生成器使用数据适配器的SelectCommand 中的查询来生成其他命令。这只能在某些情况下发生。其中一种情况是查询不涉及多个表。错误消息表明您的情况并非如此。您需要自己创建UpdateCommand等。

    【讨论】:

    • 我忘了发布整个代码: Dim strbring As String = "SELECT distinct EmpNum,EmpName,EmpAge,EmpAdress,EmpDegree,EmpJobTitle,EmpPhone,UnitName from tblEmp,tblUnit where tblUnit.UnitID =tblEmp. EmpUnitID " 适配器 = 新 SqlDataAdapter(strbring, con) 适配器.Fill(dt) dgEmp.DataSource = dt
    • 不要在 cmets 中发布长代码 sn-ps,尤其是未格式化的。这几乎是不可读的。更新您的问题,使其首先包含它应该拥有的所有信息。也就是说,您的评论只是强化了您已经被告知的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多