我在连接到我的 SQL 数据库的VB.NET应用程序中遇到错误。它连接良好,但由于某种原因我无法修复此错误。当我尝试修复它时,它会从我的脚本的一部分移动到我的脚本的另一部分(两者都在昨天工作)。错误详情如下:
不幸的是,我很难描述我是如何产生这个结果的,因为它发生在我的代码的多个部分中,而这些部分唯一的共同点是它们与 Listbox1 的交互。
得到这个错误的第一部分代码是:
Dim sqlpage As MySqlCommand = New MySqlCommand("SELECT * FROM [" & frmMain.ListBox1.SelectedItem.value & "]", con)
然后我得到了同样的错误:
Private Sub ListBox1_SelectedValueChanged( _
ByVal sender As Object, ByVal e As System.EventArgs) _
Handles ListBox1.SelectedValueChanged
Try
Form1.Label1.Text = ListBox1.SelectedItem
Form1.Show()
Catch myerror As MySqlException
MessageBox.Show("Error Setting Up Project Page: " & myerror.Message)
End Try
End Sub
进一步来说:
Form1.Label1.Text = ListBox1.SelectedItem
然后我又得到了几次,但我认为上面的例子就足够了。
由于上面的示例中没有“使用块变量”,因此唯一的其他选择是它与对象相关。我尝试了不同的方法来定义和重新定义与错误相关的对象变量。然而,结果是一样的。
作为对并置的回答,我原来的问题已经解决了,但是因为我打开了 Option Strict,所以特别出现了两个新问题。
- 第一个是:
Error1:Option Strict On 不允许后期绑定。
有问题的代码是:
Try
' Retrieving the projects list.
con.Open()
DataAdapter2.SelectCommand = sqlprojects
DataAdapter2.Fill(ds2, "projects")
ListBox1.Items.Clear()
For Each DataRow In ds2.Tables("projects").Rows
' Error occurs on the line below
ListBox1.Items.Add(DataRow("project_name"))
Next
con.Close()
Catch myerror As MySqlException
MessageBox.Show("Error Retrieving Projects List: " & myerror.Message)
End Try
- 第二个是:
错误 2:Option Strict On 不允许从“对象”到“字符串”的隐式转换。
有问题的代码是:
Private Sub ListBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedValueChanged
Try
If ListBox1.SelectedItem IsNot Nothing Then
' Error occurs on the line below
Form1.Label1.Text = ListBox1.SelectedItem
End If
Form1.Show()
Catch myerror As MySqlException
MessageBox.Show("Error Setting Up Project Page: " & myerror.Message)
End Try
End Sub
它成功了......所以我感谢你们所有人的时间和耐心。