如何使用从Form1中的文本框接收的输入与form2中的mySQL建立连接。 现在我的程序是这样的:
Form1打开并询问服务器,用户名,密码。 有3个按钮可以使用form2模块打开不同的表单,form2是SQL连接字符串。
我现在在form2的连接字符串中有这个:
Public Const cnString As String = "datasource=" & DBSelector.txtServer.Text & ";" _
& "username=" & DBSelector.txtUsername.Text & ";" _
& "password=" & DBSelector.txtPassword.Text & ";" _
& "database=" & DBSelector.txtDatabase.Text & ";"
现在我遇到了这个错误:"对非共享成员的引用需要一个对象引用。" 我是Visual Basic的新手,我无法解决问题。 我认为它是因为Form2是一个模块而不是公共类。
我希望有人可以帮助我。在此先感谢!
答案 0 :(得分:0)
要在“实时”中引用另一个表单,您必须拥有一个包含第二个表单实例的变量。
要从Main-Form代码中引用一个新表单,您可以使用与其创建的Second-Form相同的变量。
在您的情况下 - 从被调用表单到调用者表单的引用,您可以1.将Forms实例存储在表单本身的静态ariable中,2。将其传递给参数到Second Form构造函数(New()Sub)。
或者您可以通过将您的信息直接发送给构造函数来跳过所有主题,所以:
主要代码 - 您的案例中的DBSelector:
Public Class DBSelector
...
Public Sub LanchSecondForm()
Dim form2 As Form2 = New Form2(txtServer.Text, _
txtUsername.Text, _
txtPassword.Text, _
txtDatabase.Text)
form2.Show()
End Sub
...
End Class
二次代码:
Public Class Form2
...
Public cnString As String
Public Sub New(datasourcePrm As String, _
usernamePrm As String, _
passwordPrm As String, _
databasePrm As String)
cnString = "datasource=" & datasourcePrm & ";" _
& "username=" & usernamePrm & ";" _
& "password=" & passwordPrm & ";" _
& "database=" & databasePrm & ";"
InitializeComponent()
End Sub
...
End Class
Const重新发现绝对值,在编译时已知。它不可能分配一个“动态”值,所以:
Public a As String
Public Const b As String = a 'error: a its a variable
Public Const b As String = "abc" 'correct
希望我能理解和帮助。