为什么它告诉我“更新无法找到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
答案 0 :(得分:0)
我认为您的问题是,由于数据集为空,因此没有名为“DiscTable”的表。我认为你已经在某个时候执行了一个“SELECT”查询,它会给你一组你想要更新的内容。该数据集是您应该进行更新的数据集。
您现在正在做的事情毫无意义,您也可以执行“SELECT”查询。这是因为您尝试使用数据填充空数据集而不是更新现有数据集。然后作为额外的奖励,你填充ds是一个本地对象。当您到达End Sub时,数据集已消失。所以你实际上根本没有尝试更新它。