Может ли кто-нибудь помочь, где я могу применить метод dispose на этом? так что переменная, которую я использую, не будет сохранена в памяти. У меня есть, где я должен положить или когда я должен его использовать.
Я пробовал делать
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
Объекты реализуют интерфейс IDisposable по умолчанию и будут автоматически удаляться, когда Object.Finalize() запускается сборкой мусора.
В вашем вопросе вы пытаетесь уничтожить строку, которая является "технически" объектом, но является объектом, который действует как переменная и не может быть удалён.
Вы можете избавиться от mysqlConn после mysqlConn.close(), если вы хотите освободить память до сбора мусора. sqlCmd также можно утилизировать. В общем, я бы не использовал метод Dispose(), если у вас нет конкретной проблемы (главным образом, ограничения памяти), которую вы пытаетесь решить. .NET runtime отлично справляется с этим.