在函数中,我需要使用参数来更改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”)所有的日语的平假名。任何方式或方法让我在这里使用语音标记将非常有用。
答案 0 :(得分:1)
您必须连接所有字符串:查询第一个单引号,character
变量并在character
变量后查询。
Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='" & character & "';"
VB.NET不支持您打算做什么(希望编译器能够理解字符串的一部分实际上是一个变量)。
注意:正如Mitch Wheat强调的那样,处理变量SQL查询的最佳方法是依赖参数化查询。这个答案的重点是突出显示你得到错误的原因以及如何在VB.NET中处理字符串操作/连接。