首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vb.net使用特定值更新每一行

vb.net使用特定值更新每一行
EN

Stack Overflow用户
提问于 2020-08-07 03:01:56
回答 2查看 59关注 0票数 0

我想在vb.net中构建一个循环,将价格更新到数据库中。最终目标是构建一个API,它接受价格并插入到ID为动态的数据库中

今天的目标是构建一个循环,将1插入到“价格”表中,其中ID是1-4,但我希望价格是动态的,但当我单击按钮时,它显示了正确的语法,但他没有更新。

你能给我一些小贴士或窍门来帮助我吗?我在DataAdapter上读到一些东西,但我一点头绪也没有。

代码:

代码语言:javascript
复制
Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click

        pgConnectionString = "Server=127.0.0.1;Port=5432;Database=magic;User Id=magic;Password=magic;"      'PostgreSQL connection'
        pgConnection.ConnectionString = pgConnectionString
        pgCommand.Connection = pgConnection
        pgCommand.CommandType = CommandType.Text
        Dim apiid As Integer

        apiid = 1

        Do While apiid <= 4
            pgConnection.Open()
            pgCommand.CommandText = "update magic set price = 1 where ID=" & apiid & ""
            pgConnection.Close()
            MessageBox.Show(pgCommand.CommandText)
            apiid += 1
        Loop

End Sub
EN

回答 2

Stack Overflow用户

发布于 2020-08-07 06:47:09

这里有一些你可能想要读一读的东西。但我想这应该能让你开始

代码语言:javascript
复制
Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click

    pgConnectionString = "Server=127.0.0.1;Port=5432;Database=magic;User Id=magic;Password=magic;"      'PostgreSQL connection'
    pgConnection.ConnectionString = pgConnectionString
    pgCommand.Connection = pgConnection
    pgCommand.CommandType = CommandType.Text
    Dim apiid As Integer

    apiid = 1

    Do While apiid <= 4
        pgConnection.Open()
        pgCommand.CommandText = "update magic set price = 1 where ID=" & apiid & ""

        pgCommand.ExecteNonQuery() 'As per comments above

        pgConnection.Close()
        MessageBox.Show(pgCommand.CommandText)
        apiid += 1
    Loop
End Sub

您需要考虑的其他事情是连接和命令对象都实现了IDisposable,因此使用语句为您处理连接状态和垃圾收集将是一个好主意。接下来,您将阅读有关使用参数的知识。这将允许您保持初始需求的价格动态,它不容易出错,最后,它引入了保护数据库完整性的安全元素(SQL注入)。

票数 0
EN

Stack Overflow用户

发布于 2020-08-07 09:01:50

最好不要将用户界面代码与数据库代码混在一起。

我为价格数据创建了一个类。

代码语言:javascript
复制
Public Class NewPrice
    Public Price As Double
    Public ID As Integer
    Public Sub New(p As Double, i As Integer)
        Price = p
        ID = i
    End Sub
End Class

数据库代码可能如下所示。连接应该在使用它们的方法中创建和处理。Using...End Using块确保关闭并释放数据库对象。连接的构造函数可以将连接字符串作为参数;同样,命令可以将sql语句和连接作为参数。

在循环之前,我们创建连接和命令,并打开连接。只有参数的值在循环内更改

代码语言:javascript
复制
Private ConStr As String = "Server=127.0.0.1;Port=5432;Database=magic;User Id=magic;Password=magic;"

Public Sub UpdateMagicPrice(PriceList As List(Of NewPrice))
    Using cn As New NpgsqlConnection(ConStr),
            cmd As New NpgsqlCommand("update magic set price = @Price where ID= @ID", cn)
        cn.Open()
        For Each np In PriceList
            cmd.Parameters.Add("@Price", NpgsqlDbType.Double).Value = np.Price
            cmd.Parameters.Add("@ID", NpgsqlDbType.Integer).Value = np.ID
            cmd.ExecuteNonQuery()
        Next
    End Using
End Sub

在用户界面代码中,我们创建您的数据列表。

代码语言:javascript
复制
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim p As Double = 13.95
    Dim lst As New List(Of NewPrice)
    For i = 1 To 4
        lst.Add(New NewPrice(p, i))
    Next
    UpdateMagicPrice(lst)
End Sub

我希望这能让你开始实现你的目标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63290167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档