我有一个连接到我的VB.NET项目的数据库,我的程序操作的一部分是我添加了一行。为了提高效率,我正在努力减少我从数据库中提取的数据。目前,我不得不采取整个表(我不想做的事情)我想尽可能少的数据,以便能够添加行。这是我目前的代码:
MessagesDataSet.Clear()
MessagesTableAdapter.SelectCommand = New OleDb.OleDbCommand("SELECT * FROM Messages", MessagesTableAdapter.SelectCommand.Connection)
MessagesTableAdapter.Fill(MessagesDataSet)
Dim row As DataRow = MessagesDataSet.Tables(0).NewRow()
row.Item(0) = MessagesDataSet.Tables(0).Rows.Count + 1
row.Item(1) = uuid
row.Item(2) = Now
row.Item(3) = message
row.Item(4) = "<ROOM>"
row.Item(5) = currentRoomName
MessagesDataSet.Tables(0).Rows.Add(row)
MessagesTableAdapter.Update(MessagesDataSet)
如果我尝试其他任何操作,我会得到一个异常(通常该行已经属于该表,位于第二行。)这是一个带有第一列的Access(2007-2013)数据库(row.Item(0) )作为主键。
任何帮助将不胜感激!
更新:我尝试将SELECT语句更改为仅下拉主键,但是当我这样做时,我在语句row.Item(1)= uuid得到一个IndexOutOfRangeException(找不到列1)。
答案 0 :(得分:0)
将MessagesDataSet.Tables(0).Rows.Count + 1更改为MessagesDataSet.Tables(0).Rows.Count - 1
它会为您提供最近添加的最后一行