【发布时间】:2015-10-10 17:14:39
【问题描述】:
我正在使用 datagridview 来显示表格数据和更改特定单元格的值。根据要求,我可能需要为不止一行更改这些值。
我正在尝试使用 datagridview1.CellValueChanged 来填充数据集(即创建所做更改的集合),然后通过单击命令按钮保存更改。
我的问题是,虽然每次更改,sub 只被调用,最后一次更改被保存。我正在考虑使用数据集来存储值更改的多条记录,然后将数据集中的所有行保存在数据库表中(使用更新)。
能否解决我的困境。
附言。在尝试这个(ADO.net 数据集)之前,我正在更新一个临时表,然后使用它来更新数据库。
感谢您的解决方案。
代码:::
Private Sub dGridVwCreaCode_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) 处理 dGridVwCreaCode.CellValueChanged
Dim qryStr_CodeShtText_Changed As String
Dim var_CodeID_Changed As Long
var_CodeID_Changed = dGridVwCreaCode(e.ColumnIndex - 2, e.RowIndex).Value
qryStr_CodeShtText_Changed = "SELECT Code_ID, Code, Code_Descrip FROM Code_SAP " & _
"WHERE (Code_SAP.Code_ID = " & var_CodeID_Changed & ")"
var_CodeShtText_Changed = dGridVwCreaCode(e.ColumnIndex, e.RowIndex).Value.ToString
If Not CatGenieConnPublic.State = ConnectionState.Open Then
CatGenieConnPublic.Open()
End If
da_CodeShtText_Changed = New OleDb.OleDbDataAdapter(qryStr_CodeShtText_Changed, CatGenieConnPublic)
da_CodeShtText_Changed.Fill(ds_CodeShtText_Changed, "Code_SAP")
cb_CodeShtText_changed = New OleDb.OleDbCommandBuilder(da_CodeShtText_Changed)
ds_CodeShtText_Changed.Tables("Code_SAP").Rows(1).Item("Code_Descrip") = var_CodeShtText_Changed
要保存更改(从 Button_Click 调用 sub): 私有子 Save_Changed_CodeShtText() da_CodeShtText_Changed.Update(ds_CodeShtText_Changed, "Code_SAP") MsgBox("已保存到数据库的更改...", vbOKOnly + vbInformation)
If CatGenieConnPublic.State = ConnectionState.Open Then
CatGenieConnPublic.Close()
End If
'SET BOOLEAN TO FALSE AS CHANGED VALUES HAVE BEEN SAVED
bool_CellVal_HasChanged = False
End Sub
附言。不知何故,我无法将所有代码行放在一起,请原谅我。
【问题讨论】:
-
您能发布与此相关的代码吗?
标签: vb.net datagridview dataset