谁能帮我把这个放在哪里?这样我使用的变量就不会保存在内存中。我在想我应该把它放在哪里或者什么时候用。
我试过了
myquery.dispose()
但我觉得我做错了。
Private Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click
mysqlConn.Open()
If TextBox01.Text = "" Or TextBox02.Text = "" Or TextBox04.Text = "" Or TextBox05.Text = "" Or TextBox06.Text = "" Then
MsgBox("Please fill in all boxes")
Exit Sub
Else
sqlCmd = New Odbc.OdbcCommand
sqlCmd.Connection = mysqlConn
sqlCmd.CommandType = CommandType.Text
sqlCmd.CommandText = "select * from tbl_user where username='" & TextBox05.Text & "' Or email='" & TextBox04.Text & "' "
dr = sqlCmd.ExecuteReader
If dr.HasRows Then
MsgBox("Username or Email already Exist", MsgBoxStyle.Critical)
Else
Dim myQuery As String
myQuery = "INSERT INTO tbl_user(firstname, lastname, email, username, password) VALUES ('" & Replace(Trim(TextBox01.Text), "'", "''") & "', '" & Replace(Trim(TextBox02.Text), "'", "''") & "', '" & Replace(Trim(TextBox04.Text), "'", "''") & "', '" & Replace(Trim(TextBox05.Text), "'", "''") & "', '" & Replace(Trim(TextBox06.Text), "'", "''") & "')"
sqlCmd = New Odbc.OdbcCommand
sqlCmd.Connection = mysqlConn
sqlCmd.CommandText = myQuery
dr = sqlCmd.ExecuteReader
MessageBox.Show("You are now register!", "System", MessageBoxButtons.OK)
Me.Hide()
frmMenu.Hide()
frmLogin.Show()
TextBox01.Text = ""
TextBox02.Text = ""
TextBox04.Text = ""
TextBox05.Text = ""
TextBox06.Text = ""
End If
End If
mysqlConn.Close()
End Sub
1条答案
按热度按时间kmb7vmvb1#
默认情况下,对象实现idisposable接口,当垃圾回收运行object.finalize()时,对象将被自动释放。
在您的问题中,您试图处理一个字符串,它“技术上”是一个对象,但它是一个充当变量的对象,不能被处理。
如果您想在垃圾回收发生之前释放内存,可以在mysqlconn.close()之后处理mysqlconn。sqlcmd也可以被处理掉。不过,一般来说,我不会使用dispose()方法,除非您有要解决的特定问题(主要是内存约束)。net运行时在管理这方面做得很好。