【发布时间】:2013-03-14 15:31:30
【问题描述】:
我想在输入单元格后将值从 datagridview 更新到 sql。但它不起作用。
此代码:
Private Sub dgvShow_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles dgvShow.KeyPress
Dim sb3 As New StringBuilder
Dim da2 As New SqlDataAdapter
For i As Integer = 0 To dgvShow.Rows.Count - 2
If dgvShow.Rows(i).Cells(0).Value IsNot Nothing Then
sb3.Remove(0, sb3.Length())
sb3.Append("UPDATE PositionLevelWelfare ")
sb3.Append("SET wfDivision=@wfDivision,wfSection=@wfSection,wfPosition=@wfPosition,wfBaht=@wfBaht")
sb3.Append(" FROM PositionLevelWelfare pw")
sb3.Append(" WHERE pw.Run=@Run")
Dim SqlEdit As String = ""
SqlEdit = sb3.ToString()
da2.SelectCommand.CommandText = SqlEdit
da2.SelectCommand.Parameters.Add("@Run", SqlDbType.NVarChar).Value = dgvShow.Rows(i).Cells(0).Value
da2.SelectCommand.Parameters.Add("@wfDivision", SqlDbType.NVarChar).Value = dgvShow.Rows(i).Cells(1).Value
da2.SelectCommand.Parameters.Add("@wfSection", SqlDbType.NVarChar).Value = dgvShow.Rows(i).Cells(2).Value
da2.SelectCommand.Parameters.Add("@wfPosition", SqlDbType.NVarChar).Value = dgvShow.Rows(i).Cells(3).Value
da2.SelectCommand.Parameters.Add("@wfBaht", SqlDbType.NVarChar).Value = dgvShow.Rows(i).Cells(4).Value
da2.SelectCommand.ExecuteNonQuery()
da2.SelectCommand.Parameters.Clear()
End If
Next
End Sub
感谢您的游览时间。 :)
【问题讨论】:
-
哪里出错了?你试过什么?
-
没有错误,也没有任何反应。我使用带有按钮的代码它的工作。但我尝试更改按键它不起作用。我不知道为什么它不起作用。
-
您应该将更改保存在 AfterEdit() 或 EndUpdate() 上(我不记得确切的名称)。 AFAIK 单元格上的文本在您结束编辑之前不会更新,因此 dgvShow.Rows(i).Cells(X).Value 绑定到“旧”值。
标签: vb.net sql-server-2008 data-binding datagridview keypress