C# - 网站 - SQL Select 语句

标签 c# sql visual-studio sqldatareader

我想用一个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);    

更多信息

C# using statement

SQL reference

SQL injection (为什么你应该参数化你的查询)

关于C# - 网站 - SQL Select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5943139/

相关文章:

git - Visual Studio 2013 Git 版本控制 - SSH key

c# - 访问冲突 : Attempted to read or write protected memory

c# - C# 中的单例

c# - 我可以在 .NET 3.5 的代码隐藏中打印标准测试页吗?

c# - 不支持“MultipleActiveResultsSets”关键字

mysql - 对 SQL 中的一系列值进行计数

c++ - MFC如何解释SetWindowTextW(LPCTSTR)?

c# - 类未注册(Windows Phone 8.1 中的 HRESULT : 0x80040154) when BackgroundExecutionManager. RequestAccessAsync 异常

MySQL:从 SELECT 语句到 INSERT 语句

visual-studio - 为 Visual Studio 2010 自定义宏分配键盘快捷键