总的来说,我正在学习Visual,我目前正在开发一个Windows应用程序。我有两个文本框方法(usernameTextBox,passwordTextBox)。其中,用户将输入数据,然后单击submit按钮(Button1_Click)。该方法将调用connect。我想要做的是,让用户输入-他们的用户名和密码。然后通过值传递它,而不是在Button方法中调用它时将其引用到connect()。
有点像认证页面。现在,我在connect(FirstName:="JohnDoe", Password:="password")中有了一些价值--这基本上是为了测试MySQL服务器,并演示我试图尝试的内容。
Imports MySql.Data.MySqlClient
Public Class SecurePasswordList
Dim conn As New MySqlConnection
Public Sub connect(ByVal FirstName As String, ByVal Password As String)
Dim DatabaseName As String = "mysql"
Dim server As String = "10.1.0.0"
If Not conn Is Nothing Then conn.Close()
conn.ConnectionString = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", server, FirstName, Password, DatabaseName)
Try
conn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
conn.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
connect(FirstName:="JohnDoe", Password:="password")
End Sub
Private Sub SecurePasswordList_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub usernameTextBox_TextChanged(sender As Object, e As EventArgs) Handles usernameTextBox.TextChanged
Dim FirstName As String
FirstName = usernameTextBox.Text
End Sub
Private Sub passwordTextBox_TextChanged(sender As Object, e As EventArgs) Handles passwordTextBox.TextChanged
Dim Password As String
Password = passwordTextBox.Text
End Sub
End Class发布于 2015-07-18 00:58:20
变化
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
connect(FirstName:="JohnDoe", Password:="password")
End Sub至
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
connect(FirstName, Password)
End Sub但是,您应该确保FirstName和密码被初始化并作为类变量保存。移动
Dim FirstName As String
Dim FirstName As String要在类中,而不是事件处理函数(单击等)。如下所示:
Public Class SecurePasswordList
Dim conn As New MySqlConnection
Dim FirstName As String
Dim FirstName As String但实际上您可以这样重做代码(因为您只需要控件中的文本):
Imports MySql.Data.MySqlClient
Public Class SecurePasswordList
Dim conn As New MySqlConnection
Public Sub connect(ByVal FirstName As String, ByVal Password As String)
Dim DatabaseName As String = "mysql"
Dim server As String = "10.1.0.0"
If Not conn Is Nothing Then conn.Close()
conn.ConnectionString = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", server, FirstName, Password, DatabaseName)
Try
conn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
conn.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
connect(usernameTextBox.Text, passwordTextBox.Text)
End Sub
End Class我认为传递价值或参考并不是问题所在。是否希望connect函数修改传递给它的字符串?我怀疑。因此,在这种情况下,值或引用是可以的。字符串由复制的实例通过引用传递,因此实际上它们是通过值传递的,除非在函数声明中使用Byref。默认情况下,在VB中,每个类(int、string等)传递的方式不同。如果指定Byval或Byref,则需要检查每个类型以了解它将做什么。如果使用Byval,String将创建字符串的副本,但实际上是使用指向新创建的字符串的指针访问的。所以这也取决于你想挖多深
https://stackoverflow.com/questions/31486705
复制相似问题