3

我需要帮助将变量从我的 Visual Basic 应用程序传递到 SQL 查询,以更新我的数据库并根据我使用的变量检索数据。

这样做的正确方法是什么:

我的数据库正在存储 appName、appLink 和 clickCount。每次我单击关联的应用程序时,它都会启动链接,然后我希望它将 clickCount 增加一。跟踪最常用的链接。

我刚在想,

UPDATE myTable
SET clickCount = clickCount + 1
WHERE appName = (variable I am passing | link user clicked on)

但是如何将变量从 VB 获取到我的 SQL 语句中呢?我将在我的 VB 应用程序中执行许多功能,并且需要公开地将数据传入和传出我的 SQL 服务器。实现这一目标的最佳方法是什么?

旁注... 什么时候应该使用 SQL 中的存储过程或函数而不是 VB 中的函数?

最后,我真正知道的唯一语言是 Python,所以我正在学习 SQL 和 VB 来完成这个项目。在 Python 中,使用 SQLite,代码都在同一个地方。我可以编写一个函数来完成上述所有操作。我可以在VB中做到这一点吗?

4

2 回答 2

4

您的问题不包含任何实际代码,所以我只会给您一个伪代码。首先,我定义了一个名为 UpdateClickCount 的方法,它接收应用程序名称和链接名称

 Public Sub UpdateClickCount(ByVal appName as String, ByVal linkName as String)
     Using sqlCon = new SqlConnection(connectionString)
          sqlCon.Open()
          Dim sqlText = "UPDATE myTable SET clickCount = clickCount + 1 " & _
                        "WHERE appName = @name AND link = @link"
          Dim cmd = new SqlCommand(sqlText, sqlCon)
          cmd.Parameters.AddWithValue("@name", appName)
          cmd.Parameters.AddWithValue("@link", linkName)
          cmd.ExecuteNonQuery()
     End Using
 End Sub

在该方法中,首先要做的是使用一个连接字符串打开SqlConnection ,该连接字符串包含到达数据库的所有信息。
接下来,更新数据库的命令文本被定义并分配给一个字符串。
此命令包含两个参数占位符(@name 和@link)。
现在我们可以使用字符串和连接来定义SqlCommand 。
在执行命令之前要做的最后一件事是定义两个参数及其值。

ExecuteNonQuery将所有内容提交到数据库并更新您的数据。
通常这是更新数据库的每个命令的方式。

于 2013-04-20T14:12:51.523 回答
0

您可以使用 sqlcommand 对象来构建您的 sql 语句并使用参数占位符来分配变量。

于 2013-04-20T14:11:07.327 回答