2013-05-11 63 views
1

我嘗試使用多個字讀取查詢時遇到此問題。 基本上,從組合框中選擇項目後,我把字符串值查詢和exetute它。 當我選擇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); 
      } 
     } 

謝謝!對不起,如果格式不是適當的格式,我在這裏是新的...

+0

嘗試用「[合格免費meels]」作爲列名 – Damith 2013-05-11 09:24:01

回答

1

正如你已經在方括號中包圍表名似乎你正在使用MSSQL。所以,因爲你的列名可以包含空格,你也應該這樣做與他們,是這樣的...

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

對於Oracle來說,這將是...

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

對於MySQL,它會是...

string Query = "select `" + Column + "` from data$"; 
+0

yeap方括號是問題,謝謝! – 2013-05-11 11:28:31