VB.NET声明错误

3

我在一些Visual Basic代码中遇到了一些问题,尽管我已经声明了一个变量,但当我尝试给它赋值时,Visual Studio返回一个错误,说这个变量还没有被声明。以下是代码块:

Private Sub chkbox_ta_CheckedChanged(sender As Object, e As EventArgs) Handles chkbox_ta.CheckedChanged
    Dim query As String = "SELECT * FROM [Hiragana List] WHERE Pronunciation='Ta';"
    Dim instruction As SqlCommand (query, connection)
    Dim da As New SqlDataAdapter
    da.SelectCommand = instruction
    da.Fill(HiraganaList)
End Sub

这个错误是由“instruction”变量引起的,Visual Studio没有提供任何解决方案。此外,在instruction变量中的查询参数返回错误“数组边界不能出现在类型说明符中”。我仍在适应在VB中使用SQL,任何能教我如何避免这些错误的解释都将非常有帮助。


1
顺便提一下,我不会在表名中使用空格。这样做没有任何好处,而且会带来很多问题。只需将表命名为[HiraganaList],然后您就不必再使用括号了。 - Zane
我很遗憾地意识到了一件事...我试图在表格被填充后更改表格名称,结果创建了一个新的表格,但其中没有任何数据 :( - Marcus Eagle
2个回答

4

SqlCommand的声明和初始化语法错误。
正确的语法应为以下之一:

Dim instruction As SqlCommand = new SqlCommand(query, connection)

或者
Dim instruction As New SqlCommand (query, connection)

或者只是
Dim instruction = new SqlCommand(query, connection)

Dim 声明 有很多变体需要仔细学习(特别是在使用该语言的早期阶段)。


2
甚至可以使用以下代码:Dim instruction As New SqlCommand(query, connection) - Rowland Shaw
谢谢,我也把这个包含在答案中。 - Steve

1
数据类型(字符串、整数、日期)不需要进行“new”声明。 但是,当您定义一个类(例如SqlCommand或自己创建的类)时,需要使用“new”进行初始化。
Steve早期帖子中的语法示例。
Dim instruction As SqlCommand = new SqlCommand(query, connection)
Dim instruction As New SqlCommand (query, connection)
Dim instruction = new SqlCommand(query, connection)

一些可能有用的链接:

http://msdn.microsoft.com/en-us/library/47zceaw7.aspx

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand%28v=vs.110%29.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接