使用form1.textbox中的输入到form2中的mysql连接

时间:2014-04-03 17:48:47

标签: vb.net winforms

如何使用从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是一个模块而不是公共类。

我希望有人可以帮助我。在此先感谢!

1 个答案:

答案 0 :(得分:0)

  1. 要在“实时”中引用另一个表单,您必须拥有一个包含第二个表单实例的变量。

    要从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
    
  2. Const重新发现绝对值,在编译时已知。它不可能分配一个“动态”值,所以:

    Public a As String
    Public Const b As String = a       'error: a its a variable
    Public Const b As String = "abc"   'correct
    
  3. 希望我能理解和帮助。