使用 vb.net 通过 Datagridview 更新 mssql 服务器数据库中的计算列

问题描述 投票:0回答:1

我有一个 VB.net 脚本,可将信息放入 MSSQL 数据库的表中。
我设法仅使用 datagridview 来更新数据。
现在我试图弄清楚如何更新同一个表中引用其他两列之间的计算的另一列。
对于该列(比方说

Column3
),我使用了如下所示的计算列规范属性:(Column1*Column2)。

无论如何,当我更新

Column1
时,我想同时看到
Column3
的变化。
实际上
Column3
的值正在改变,但直到我重新启动调试才显示出来。
所以这就是交易......我想同时看到这些变化。我应该使用什么样的代码?
我是初学者,所以我不知道可能性。
我应该为此使用触发器吗?如果我必须怎么办? (我尝试过
Select Column1, Column2, Column3 as (Column1/Coulmn2) from Table1
,然后从datagridview查看,但id也不起作用。 我不记得它不起作用的确切原因)

(数据库名称:Database1、表名称:Table1、列:Column1、Column2、Column3)

代码:

Public Sub tryupdate(Query As String)
    Try
        sqlcon.Open()
        sqlCmd = New SqlCommand(Query, sqlcon)
        sqlDA = New SqlDataAdapter(sqlCmd)
        Dim SqlCmdBuild As SqlCommandBuilder = New SqlCommandBuilder(sqlDA)
        sqlDA.UpdateCommand = SqlCmdBuild.GetUpdateCommand()
        sqlDA.Update(sqlDataset)
        sqlcon.Close()
    Catch ex As Exception
        If sqlcon.State = ConnectionState.Open Then sqlcon.Close()
        MsgBox(ex.Message)
    End Try
End Sub


Private Sub dataset_fill()
    sql.tryupdate("select * from [Quantities&Planning]")
    DgwNewLayout.DataSource = sql.sqlDataset.Tables(0)
End Sub

Private Sub DgwNewLayout_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DgwNewLayout.CellValueChanged
    dataset_fill()
End Sub
sql-server vb.net datagridview visual-studio-2015 updatecommand
1个回答
0
投票
Private Sub filltocell()

        Dim cell1 As Integer
        Dim cell2 As Integer
        Dim cellplus As Integer
        iCell1 = DgwNewLayout.CurrentRow.Cells(0).Value
        icell2 = DgwNewLayout.CurrentRow.Cells(1).Value
            cellplus = cell1 * cell2 
        DgwNewLayout.CurrentRow.Cells(2).Value = cellplus 

End Sub

我使用此代码作为解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.