SQL 在 VB.NET 中更新数据库,遇到问题

Posted

技术标签:

【中文标题】SQL 在 VB.NET 中更新数据库,遇到问题【英文标题】:SQL UPDATEing a datebase in VB.NET, having troubles 【发布时间】:2009-04-02 23:09:01 【问题描述】:

我正在使用数据网格视图来显示来自数据库的信息,但我无法正确更新它。 我可以看到数据库中的数据,但是当我更改信息并保存它时,它会更改整个列的信息。我的行需要在同一列中有不同的值,所以这是一个问题。

-到目前为止,这是我的代码,程序所做的是列出输入的交易。

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

提前感谢您的帮助。

【问题讨论】:

这看起来像 VB.Net 代码,而不是 VB 6 代码。 @Ben:如果 tpdi 回答了您的问题,则将其标记为正确;) 【参考方案1】:

它会更改每一行,因为您的更新语句没有 where 子句。没有 where 子句,就没有谓词,所以它匹配每一行,所以每一行都会更新。

您的更新语句需要一个 where 子句(谓词)。在更新语句的末尾可能是“where id = @id”。

【讨论】:

+1 因为公然要求标记最佳答案。是的。这仍然是一个很好的答案;) 我不知道这个问题是不是早就被遗忘了,但我遇到了同样的问题,只有什么都不会更新,我更改了我的数据网格视图中的信息并单击更新,它说更新成功但没有任何改变.. . 有什么想法吗?

以上是关于SQL 在 VB.NET 中更新数据库,遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL 新手并遇到语法问题 (VB.NET)

从 VB.NET 复选框选项构建 SQL 查询时遇到问题

Vb.net 编辑 DatagridView

VB.NET 无法更新 datagridview 中的 SQL 数据

使用 vb.net 根据 SQL 数据库中存在的记录动态显示/隐藏 DataGrid 按钮列时遇到问题

使用 vb.net 从 excel 文件更新 SQL 表