我正在使用datagridview來顯示錶格數據並更改特定單元格的值。根據需要,我可能需要將這些值更改爲多行。VB.Net影響對錶格的更改
我想使用datagridview1.CellValueChanged來填充數據集(即創建所做的更改的集合),然後通過單擊命令按鈕保存更改。
我的問題是,儘管對於每次更改,只有最後一次更改被保存才被調用。我正在考慮使用數據集來存儲更改值的多個記錄,然後保存數據庫表中數據集中的所有行(使用更新)。
難道有一些解決方案來解決我的困境。
PS。在嘗試這個(ADO.net數據集)之前,我正在更新一個臨時表,然後使用它來更新數據庫。
感謝您的解決方案。
代碼:::
私人小組dGridVwCreaCode_CellValueChanged(BYVAL發件人爲對象,BYVALË作爲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」)。行(1).Item( 「Code_Descrip」)= var_CodeShtText_Changed
要保存(從Button_Click被稱爲以下子)的變化: 私人小組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
PS。不知何故,我無法將所有的代碼行放在一起,請原諒我。
你可以發佈你的代碼嗎? – Saragis