我有一个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
您无法将数据更新或插入到计算列中。正如你自己看到的那样,该列在数据库中立即更新,所以问题在于别的地方 - 每次更新后你应该重新填充数据源。 –
我已经发布了我的部分代码。请看看。 – Macukadam