VB.NET使用语音标记将参数放入字符串中

时间:2014-01-04 10:04:28

标签: sql vb.net syntax

在函数中,我需要使用参数来更改SQL查询的功能。通常我会尝试使用(“”)和('')来将参数放入查询中,但是因为查询已经有两种形式的标记,所以它不会让我添加一个额外的集合。

以下是没有更改的当前代码的示例:

    Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='A';"
    Dim instruction = New SqlCommand(query, connection)
    Dim da As New SqlDataAdapter
    da.SelectCommand = instruction
    da.Fill(HiraganaList)

这就是我想在函数中做的事情:

Sub characterChecked(ByVal character As String)
    Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='character';"
    Dim instruction = New SqlCommand(query, connection)
    Dim da As New SqlDataAdapter
    da.SelectCommand = instruction
    da.Fill(HiraganaList)

问题出现在第二个代码块中,当前“字符”需要是一个参数并与查询分开,但是它不能使用语音标记(“”)分隔,以便查询行变为:< / p>

Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='"character"';

结果是“字符常量必须只包含一个字符”。

我希望使用一个函数来提高代码的可读性将是一个很好的编程实践,因为替代方案是重复相同的声明代码和音节(在原始示例中为“A”)所有的日语的平假名。任何方式或方法让我在这里使用语音标记将非常有用。

1 个答案:

答案 0 :(得分:1)

您必须连接所有字符串:查询第一个单引号,character变量并在character变量后查询。

Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='" & character & "';"

VB.NET不支持您打算做什么(希望编译器能够理解字符串的一部分实际上是一个变量)。

注意:正如Mitch Wheat强调的那样,处理变量SQL查询的最佳方法是依赖参数化查询。这个答案的重点是突出显示你得到错误的原因以及如何在VB.NET中处理字符串操作/连接。