0

我有一个VB.net脚本,将信息放入MSSQL数据库的表中。
我设法通过只使用datagridview来更新数据。
现在我想弄清楚如何更新另一列中引用其他两列之间的计算的另一列。
对于该列(比如Column3),我已经使用了像这样的计算列规范本性:(Column1 * Column2)。使用vb.net通过Datagridview更新mssql服务器数据库中的计算列

无论如何,当我更新Column1我希望在同一时间看到Column3的变化。
实际上Column3的值正在改变,但直到重新开始调试才显示出来。
所以这里是交易......我想同时看到变化。我应该使用什么样的代码?
我是初学者,所以我没有意识到可能性。
我应该使用触发器吗?如果我必须如何? (我曾尝试Select Column1, Column2, Column3 as (Column1/Coulmn2) from Table1,然后从DataGridView观看,但ID没有任何工作 我不记得确切的原因,为什么它没有工作。)

(数据库名称:数据库1,表名:表1,列:列1 ,列2,栏3)

代码:

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 
+0

您无法将数据更新或插入到计算列中。正如你自己看到的那样,该列在数据库中立即更新,所以问题在于别的地方 - 每次更新后你应该重新填充数据源。 –

+0

我已经发布了我的部分代码。请看看。 – Macukadam

回答

0

私人小组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

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

相关问题