У меня есть сценарий VB.net, который помещает информацию в таблицу в базе данных MSSQL.
Мне удалось обновить данные, используя только datagridview.
Теперь я пытаюсь выяснить, как обновить другой столбец в той же таблице, который ссылается на расчет между двумя другими столбцами.
Для этой колонки (скажем, Column3
) Я использовал свойство вычисления вычисляемого столбца следующим образом: (Column1 * Column2).Обновление вычисляемых столбцов в базе данных сервера mssql по Datagridview с помощью vb.net
В любом случае, когда я обновляю Column1
Я хочу видеть изменения в Column3
в то же время.
Фактическое значение Column3
меняется, но оно не отображается, пока я не перезапущу отладки.
Итак, вот сделка ... Я хочу видеть изменения одновременно. Какой код я должен использовать?
Я новичок, поэтому я не знаю о возможностях.
Должен ли я использовать триггер для этого? Если я должен как? (я попытался Select Column1, Column2, Column3 as (Column1/Coulmn2) from Table1
, а затем просмотра из DataGridView, но идентификатор не работал ни я не помню точную причину, почему она не работает.)
(Имя базы данных: Database1, имя таблицы: Table1, Столбцы: Column1 , Столбец2, 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
Вы не можете обновить или вставить данные в вычисленный столбец. Как вы сами видели, столбец немедленно обновляется в базе данных, поэтому проблема лежит где-то в другом месте - вы должны, вероятно, повторно заполнить источник данных после каждого обновления. –
Я разместил часть своего кода. Взгляните, пожалуйста. – Macukadam