sql查询表达式中的语法错误(缺少运算符)

时间:2015-09-02 17:50:14

标签: c# sql database syntax textbox

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);
        }
    }

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

3 个答案:

答案 0 :(得分:1)

用方括号

包装列名
SELECT [Registrations list] FROM [Records] WHERE textBox

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

答案 1 :(得分:0)

将列名括在方括号中。

SELECT [Registrations list] 

如果列名为contais space,则需要将列名括在方括号中,否则SQL Server会将其视为两个列名,因为逗号也不会出现,因此它会给你语法错误。

答案 2 :(得分:0)

我认为SQL

中存在错误
string Query = "SELECT Registrations list FROM [Records] WHERE textBox = '" + comboBox.SelectedValue + "'";

SELECTFROM之间,应该有一个以逗号分隔的列表,列在表Records上。如果要标记列,请在列名和uts标签之间放置关键字as

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