0

У меня есть сценарий 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 
+0

Вы не можете обновить или вставить данные в вычисленный столбец. Как вы сами видели, столбец немедленно обновляется в базе данных, поэтому проблема лежит где-то в другом месте - вы должны, вероятно, повторно заполнить источник данных после каждого обновления. –

+0

Я разместил часть своего кода. Взгляните, пожалуйста. – Macukadam

ответ

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

Я использовал этот код в качестве решения.

 Смежные вопросы

  • Нет связанных вопросов^_^