【发布时间】:2019-12-19 14:54:06
【问题描述】:
Dim strSQL as string = "select ScreenName, Status from ScreenCheckDuplicates where ScreenName='" & ScreenName & "'"
Dim aObj as new SqlDataAdapter(strSQL,conn)
dim dtObj as New DataTable
aObj.Fill(dtObj)
If dtObj.Rows.Count > 0 Then
dtObj.Rows(0)("Status") = Status
dtObj.AcceptChanges()
Else
Dim drNew as DataRow = dtObj.NewRow()
drNew("ScreenName") = ScreenName
drNew("Status") = Status
dtObj.Rows.Add(drNew)
dtObj.AcceptChanges()
End If
如果 Rows.Count > 0(屏幕名称在表中),状态将不会更新。
当我从 DataTable 中删除所有行以便运行 Else 子句时,没有添加新行。
所以...我一定想念它是如何更新表格的,需要一些帮助。我打赌这很简单,我只是想念它:(
【问题讨论】:
-
您已经创建了一个
SqlDataAdapter,但没有指定任何方式让它使用您的更改更新数据库。你只为它提供了一个SELECT声明 -
您是否使用该查询检索表的 PrimaryKey? (也许是屏幕名称?)
-
这个小表没有主键,但如果我要创建一个,它会是 ScreenName,是的。
-
是的,添加主键总是一个好主意。 (从我的回答中可以看出,您可以删除很多代码来更新您的表格)