我想用一个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");
}
错误:
Invalid Column Name (whatever I input)
它似乎在寻找一个名为我输入的列,而不是在寻找实际数据。
最佳答案
将您的 ==
更改为 =
。这是无效的 SQL。
此外,如果 txtID.Text 是非数字的,则它需要用单引号引起来。你不应该像这样构建你的 SQL,而是使用一个参数:
comm.CommandText = "SELECT * FROM Customers WHERE CustomerID = @CustomerID";
comm.Parameters.AddWithValue("CustomerID", txtID.Text);
更多信息
SQL injection (为什么你应该参数化你的查询)
关于C# - 网站 - SQL Select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943139/