c# - SQL 从查询中检测无效的列名

标签 c# sql-server winforms ado.net sqlcommand

我试过运行代码,但我不知道查询有什么问题。因为它一直在说无效的列名,所以当我试图从该列中检索数据时。列名称与数据库中的名称相匹配。它连接良好,因为它连接到一个登录表单,它可以在其中检测到其他给定的密码和名称。我基于搜索文本框使用。

private void btnSearch_Click(object sender, EventArgs e)
{   
    SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDetailConnectionString"].ToString());

    try
    {
        cnn.Open();
        SqlCommand command = new SqlCommand();
        command.Connection = cnn;
        string query = "SELECT *FROM AffiliatedRegister WHERE Username=" + txtUser.Text + "";
        command.CommandText = query;
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
          ---[Converting String from db /Insert to textboxes]---
        }
        cnn.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error" + ex);
    }
}

最佳答案

您需要将用户名文本括在引号中。

您发出的 sql 脚本将如下所示:

SELECT *FROM AffiliatedRegister WHERE Username=InputUserName

因此 SQL 试图将列 Username 与列 InputUsername 进行比较。

一旦您将用户名括在引号中,它将是:

SELECT *FROM AffiliatedRegister WHERE Username='InputUserName'

关于c# - SQL 从查询中检测无效的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211767/

相关文章:

c# - 处置面板相当于处置其子项加上自身吗?

javascript - 如何在 RadioButton-Selection 上调用 Javascript 函数?

c# - 数据库插入后如何返回唯一ID

sql - TSQL 更改过程(如果存在)- 语法错误

mysql - SQL 处理 ACID 和并发

sql - 什么时候把表分成多个数据库?

c# - 自定义控件的 AccessibleObject 实现

c# - 通过列表从 XML 中获取 InnerText

c# - 编写 Linq2Xml 查询时出现问题

c# - 在 DesignMode 中编辑集合的最简单方法?