6TT*_*014 1 c# sql sqldatareader visual-studio
我想使用select语句来查找是否存在已存在的记录.我把代码放在下面,但它在dReader = comm.ExecuteReader()时抛出一个错误; 而且我不确定为什么.有帮助吗?
string connString = "Data Source=KIMMY-MSI\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True";
SqlDataReader dReader;
SqlConnection conn = new SqlConnection(connString);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = "SELECT * FROM Customers WHERE CustomerID == " + txtID.Text;
comm.Connection.Open();
dReader = comm.ExecuteReader();
if (dReader.HasRows == true)
{
Response.Write("Exists");
}
Run Code Online (Sandbox Code Playgroud)
错误:
Invalid Column Name (whatever I input)
Run Code Online (Sandbox Code Playgroud)
它似乎正在寻找一个名为我输入的列,而不是寻找实际数据.
改变你==的=.这是无效的SQL.
此外,如果txtID.Text是非数字的,那么它需要是单引号.你不应该像这样构建你的SQL,而是使用一个参数:
comm.CommandText = "SELECT * FROM Customers WHERE CustomerID = @CustomerID";
comm.Parameters.AddWithValue("CustomerID", txtID.Text);
Run Code Online (Sandbox Code Playgroud)
SQL注入(为什么你应该参数化你的查询)