1

当我尝试阅读包含多个单词的查询时,我遇到了这个问题。基本上在从组合框中选择项目后,我将字符串值放入查询并执行它。当我选择 1 个单词项目时它工作正常但是如果我选择多个单词项目它会抛出我错误:

Column 'Eligible for free meals' does not belong to table Eligible for free meals.

'Eligible for free meels'代表选定的项目。我试图放置%和删除单引号,但它没有帮助......任何人都可以帮助我解决这个问题。我只是一个初学者,对c#不太了解......

        string Column = Filter1.Text;
        Filter1Values.Items.Clear();
        string Query = "select '" + Column + "' from [data$]";
        OleDbDataAdapter da = new OleDbDataAdapter(Query, con);            
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        da.Fill(ds, Column);
        dt = ds.Tables[Column];
        for (int i = 0; i <= dt.Rows.Count - 1; i++)
        {
            string value = dt.Rows[i][Column].ToString();
            if (!Filter1Values.Items.Contains(value))
            {
                Filter1Values.Items.Add(value);
            }
        }

谢谢!抱歉,如果格式不合适,我是新来的...

4

1 回答 1

1

由于您已将表名括在方括号中,因此您似乎正在使用 MSSQL。所以,因为你的列名可以包含空格,你应该对它们做同样的事情,像这样......

string Query = "select [" + Column + "] from [data$]";

对于甲骨文来说,这将是...

string Query = "select \"" + Column + "\" from data$";

对于 MySQL,它将是...

string Query = "select `" + Column + "` from data$";
于 2013-05-11T09:24:26.377 回答