0

为什么它告诉我“更新无法找到 TableMapping['DiscTable'] 或 DataTable 'DiscTable'。” 在这条线上:

da.Update(ds, "DiscTable")

我尝试使用 da.Update(ds) 并且也崩溃了。表中的更新还是成功了!?!?如果我删除它就可以了!

Private Sub SelectBtn_Click(sender As Object, e As EventArgs) Handles SelectBtn.Click
    Dim ConnString As String
    Dim SQLStr As String
    Dim OleDBConn As New OleDbConnection()
    Dim OleDBCmd As New OleDbCommand()
    Dim OleDBdr As OleDbDataReader
    Dim ds As New DataSet
    Dim IsChecked As Boolean = CBool(DiscDG.Rows(SelectedRowIndex).Cells(SelectedColIndex).Value)

    ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=RegDB.accdb;Persist Security Info=False;"

    SQLStr = "UPDATE DiscTable " +
             "SET LectionsTeacher='" + TeacherLblValue + "', LectionsYN=Yes " +
             "WHERE DiscName='" + SelectedRowFirstCell + "'"

    OleDBConn.ConnectionString = ConnString
    OleDBConn.Open()

    OleDBCmd.Connection = OleDBConn
    OleDBCmd.CommandText = SQLStr
    OleDBdr = OleDBCmd.ExecuteReader

    Dim da As New OleDbDataAdapter(SQLStr, OleDBConn)
    da.Update(ds, "DiscTable")

    OleDBdr.Close()
    OleDBConn.Close()
End Sub
4

1 回答 1

0

我认为您的问题是,由于数据集为空,因此没有名为“DiscTable”的表。我认为你在某个时候执行了一个“SELECT”查询,它应该给你一组你想要更新的。该数据集是您应该对其进行更新的数据集。

你现在做的事情是没有意义的,你还不如执行一个“SELECT”查询。这是因为您试图用数据填充空数据集,而不是更新现有数据集。然后作为额外的奖励,您正在填充 ds 这是一个本地对象。当您到达 End Sub 时,该数据集就消失了。所以你实际上根本没有尝试更新它。

于 2013-10-11T09:39:07.157 回答