【问题标题】:VB.Net affect changes to a tableVB.Net 影响对表的更改
【发布时间】: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


【解决方案1】:

我错过的是增加代码行中的“行”计数:

ds_CodeShtText_Changed.Tables("Code_SAP").Rows(rowNum_Increment - 1).Item("Code_Descrip") = var_CodeShtText_Changed

因此,每次用户更改特定单元格中的数据时,行数都会增加“1”并收集到数据集中。

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多