【问题标题】:vb.net multiple tables in dataset errorvb.net 数据集中的多个表错误
【发布时间】:2014-08-05 13:35:00
【问题描述】:

我正在尝试使用数据集中的表更新 sql server。 当我像下面的示例一样加载 2 个表时,它的工作非常好,首先是表 1 - 然后是表 2。 但是如果我在表 1 之前加载表 2 - 我会收到一条错误消息。 似乎更新命令只影响加载到数据集的最后一个表。

解决办法是什么?

错误信息: “附加信息:在 DataTable 'Cities' 中缺少 SourceColumn 'ProjectName' 的 DataColumn 'ProjectName'。”

Public da As New SqlDataAdapter
Public ds As DataSet = New DataSet()
Public cn As SqlConnection
Public SQLCommand As SqlCommand

Private Sub loadPart()

    Dim strConnection As String = "Server=MY-PC\SQLEXPRESS;Database=BooKKeeping;Trusted_Connection=True;"
    cn = New SqlConnection(strConnection)
    Dim strSelect As String
    Dim CommandBuilder As New SqlCommandBuilder(da)

    '// PART 1 - LOAD TABLES TO DATASET

    cn.Open()

    '// LOAD TABLE 1 
    strSelect = "SELECT * FROM Projects"
    SQLCommand = New SqlCommand(strSelect, cn)
    da.SelectCommand = SQLCommand
    da.Fill(ds, "Projects")

    '// LOAD TABLE 2
    strSelect = "SELECT * FROM Cities"
    SQLCommand = New SqlCommand(strSelect, cn)
    da.SelectCommand = SQLCommand
    da.Fill(ds, "Cities")

    cn.Close()

    '// PART 2 - ADD NEW RECORDS

    Dim row As DataRow = ds.Tables("Cities").NewRow()

    row("City") = "A"
    ds.Tables("Cities").Rows.Add(row)

    '// PART 3 - UPDATE SERVER 

    cn.Open()

    da.Update(ds, "Cities")

    cn.Close()

End Sub

【问题讨论】:

    标签: .net sql-server vb.net


    【解决方案1】:

    不要使用一个数据适配器来尝试处理多个数据库表。如果您想使用两个不同的表,请使用两个不同的数据适配器。这也意味着两个命令生成器。

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 2018-04-19
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2014-07-13
      • 1970-01-01
      相关资源
      最近更新 更多