我正在使用 VB.Net 2010 从 mysql 数据库搜索并阻止注册重复 ID。 我得到:你的 sql 语法有错误......
请你帮我解决这个问题吗? 我会犯什么错误? 正确的方法是什么?
Imports System.IO
Imports MySql.Data.MySqlClient
Imports System.Data.SqlClient
Public Class Add_Clients
Private Sub CheckClient()
Dim myquery As String = ""
Dim mycmd As MySqlCommand
myquery = "select * from clients where client_id=" & clid.Text
mycmd = New MySqlCommand(myquery, con)
Dim idno As Integer = mycmd.ExecuteNonQuery()
If idno < 0 Then
MsgBox("The Client is already Exist!", MsgBoxStyle.Exclamation, "Car Rental System")
Return
End If
End Sub
最佳答案
您的查询应该是这样的...
myquery = "SELECT * FROM clients WHERE client_id='" & clid.Text.Replace("'","''").Trim() & "'"
额外的 .Replace("'","''").Trim()
应该可以保护您免受 SQL 注入(inject)。现在应该可以使用...但是稍后您将使用参数化查询来避免 SQL hack :) 所以现在,首先练习 SQL 语句。
关于mysql - VB.Net 与 mySql 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909864/