【问题标题】:SQL and Visual Studios - Passing VariablesSQL 和 Visual Studios - 传递变量
【发布时间】:2013-04-20 14:06:33
【问题描述】:

我需要帮助将变量从我的 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 中做到这一点吗?

【问题讨论】:

    标签: sql vb.net visual-studio-2012


    【解决方案1】:

    您的问题不包含任何实际代码,所以我只给您一个伪代码。 首先,我定义了一个名为 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 将所有内容提交到数据库,您的数据也会更新。
    通常这是更新数据库的每个命令的方式。

    【讨论】:

    • 太完美了!并回答了我的问题:) 当我有足够的声望点时,我会回来投票。感谢您的时间! connectionString 是我的 .mdf 路径正确吗?其他一切都很有意义,我将能够立即实施!
    • 并非总是如此,连接字符串可能有多种格式。一个很好的参考点是这个网站connectionstrings.com
    • 这太棒了......编辑后更有意义。再次感谢,希望您周末愉快!
    • 这个答案演示了一个参数化查询,这是两种方法之一。还值得一提的是另一种方法:存储过程
    • 通常有两种选择。打开 Sql Server Management Studio 并以永久方式将 MDF 文件附加到 SqlServer 实例。这种方法需要像Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; 这样的连接字符串,在第二个选项中,您将MDF 与您的应用程序一起分发,并在运行时使用这种连接Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; Trusted_Connection=Yes; 将文件附加到现有的SqlServer 实例。题材广泛。一个新的问题是有序的
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多