SQL ОБНОВЛЕНИЕ базы данных в VB.NET, возникли проблемы - PullRequest
1 голос
/ 03 апреля 2009

Я использую представление сетки данных для отображения информации из базы данных, и я не могу заставить ее корректно обновляться. Я могу видеть данные из базы данных, но когда я изменяю информацию и сохраняю ее, она изменяет всю информацию столбца. Мои строки должны иметь разные значения в одном и том же столбце, так что это проблема.

- Вот мой код, программа делает список введенных транзакций.

Public Class Form1

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
     Handles Button3.Click

    If MsgBox("Add new transaction?", MsgBoxStyle.YesNo, " ") <> 7 Then
        If IsNumeric(in_cost.Text) Then
            Dim x As Int16 = Database1DataSet.Table1.Count + 1      '//gets # value
            Me.Table1TableAdapter.Insert(Format(Now, "dddd, M/dd/yy"), x, in_cost.Text, in_prod.Text, in_type.Text, in_note.Text, 9999.99)   '//Writes new index to DB table
            Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1)
        Else
            MsgBox("Cost is non-numeric!")
        End If
    End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.Table1TableAdapter.Update(Me.Database1DataSet.Table1)
End Sub
End Class

-SQL команда ОБНОВЛЕНИЕ:

UPDATE Table1

SET        Balance = @p1, Note = @p2, Type = @p3, Product = @p4, Cost = @p5, # = @p6, Date = @p7

Заранее спасибо за любую помощь.

1 Ответ

5 голосов
/ 03 апреля 2009

Это меняет каждую строку, потому что ваш оператор обновления не имеет предложения where. Без предложения where нет предиката, поэтому он соответствует каждой строке, поэтому каждая строка обновляется.

Вам нужно выражение where (предикат) в вашем операторе обновления. Вероятно, "где id = @id" в конце вашего оператора обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...