【问题标题】:syntax error (missing operator) in sql query expressionsql 查询表达式中的语法错误(缺少运算符)
【发布时间】:2015-09-02 17:50:13
【问题描述】:
try
        {

            string Query = "SELECT Registrations list FROM [Records] WHERE textBox = '" + comboBox.SelectedValue + "'";
            OleDbConnection me = new OleDbConnection(connection);
            OleDbCommand constr = new OleDbCommand(Query, me);
            OleDbDataReader reader;
            connection.Open();
            reader = constr.ExecuteReader();

            if (reader.Read())
            {
                OleDbParameter parameter = constr.Parameters.Add(new OleDbParameter("Registrations list", OleDbType.Integer));
                textBox.Text = reader["Registrations list"].ToString();
            }
            me.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

我试图让数据库值显示在文本框中,但不断收到错误,我已经尝试了几乎所有可能的方法

【问题讨论】:

  • 什么是Registrations list
  • 您是否尝试过按原样执行 SQL 命令以查看是否可以重现错误?这可能会导致您找到导致问题的原因。
  • 是的,但似乎没有任何效果
  • 您可以发布表格的架构吗?问题似乎在于您如何引用 SELECT 中的列。
  • 可以添加错误的堆栈跟踪吗?

标签: c# sql database syntax textbox


【解决方案1】:

用方括号括住列名

SELECT [Registrations list] FROM [Records] WHERE textBox

否则 sql server 会查找名为 Registrations 的列,然后尝试将其别名为 [List]

【讨论】:

  • @Johnugo:- 你能告诉我们你在执行上述查询时遇到的确切错误吗?
  • 您需要在选择查询本身中执行此操作。
【解决方案2】:

将列名括在方括号中。

SELECT [Registrations list] 

如果列名包含空格,那么您需要将列名括在方括号中,否则 SQL Server 会将其视为两个列名,并且由于逗号也不存在,因此会出现语法错误。

【讨论】:

    【解决方案3】:

    我想SQL中有错误

    string Query = "SELECT Registrations list FROM [Records] WHERE textBox = '" + comboBox.SelectedValue + "'";
    

    在SELECT 和FROM 之间应该有一个逗号分隔的列表,列属于表Records。如果要标记列,请将关键字 as 放在列名和 uts 标签之间。

    如果您在列名中放置了一个空格(从未见过,从未做过,甚至根本不知道这是否可能),请尝试在单引号之间包含列名。或者(更好)重命名列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2018-09-02
      • 2018-01-29
      • 2012-11-14
      相关资源
      最近更新 更多