与其从用户输入中过滤掉“无效”数据,不如考虑使用参数化查询,而不是将用户输入直接输入到您的查询中。那是非常糟糕的形式。
要使用参数运行当前查询,非常简单:
Dim con As New SqlConnection()Dim cmd As New SqlCommand()Try con.ConnectionString = "Data Source=" & Server & ";Initial Catalog=" & Database & ";User ID=" & User & ";Password=" & Password & ";" con.Open() cmd.Connection = con cmd.CommandText = "INSERT INTO TB_User(STRUserID, password, Email) VALUES(@username, @password, @email)" cmd.Parameters.Add("@username", SqlDbType.VarChar, 50).Value = UsernameTextBox.Text cmd.Parameters.Add("@password", SqlDbType.Char, 32).Value = MD5Hash(PasswordTextBox.Text) cmd.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = EmailTextBox.Text cmd.ExecuteNonQuery()Catch ex As Exception MessageBox.Show("Error while inserting record on table..." & ex.Message, "Insert Records")Finally con.Close()End Try您所要做的就是使用
cmd.Parameters.Add参数名称和正确的数据库类型(我猜想可能不匹配的数据库类型,因此您需要更改它们),然后将值设置为要在数据库中使用的值。询问。参数名称以开头
@。



