2016-04-06 153 views
-3

how to select specific feid using a filter from access in C#這些查詢有什麼區別?

我還有一個問題:

我記得這種方法絲毫的SelectFeedbtn_Click點擊事件,它的工作原理:

public static void GetSelectedFeed(Form2 frm2) 
{ 
     string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString; 

     OleDbConnection Connection = new OleDbConnection(StrCon); 
     OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary", Connection); 

     DataTable DTable = new DataTable(); 
     DataA.Fill(DTable); 

     frm2.SelectedFeeddataGridView.DataSource = DTable; 
} 

但是當我想從FeedSelectListBoxDisplayMember獲得一個ID是飼料名稱/描述和ValueMember是它顯示一個exeption的ID:{"Data type mismatch in criteria expression."},
查詢是:

public static void GetSelectedFeed(Form2 frm2) 
{ 
     string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString; 

     OleDbConnection Connection = new OleDbConnection(StrCon); 
     OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = 'frm2.FeedSelectListBox.SelectedValue'", Connection); 

     DataTable DTable = new DataTable(); 
     DataA.Fill(DTable); 

     frm2.SelectedFeeddataGridView.DataSource = DTable; 
} 

我該怎麼辦?

+1

您是否收到錯誤或者您是否沒有收到任何結果? – Brad

+1

ID可能是數字。刪除它周圍的單引號。 「Select * from FeedLibrary where ID = 2」 – smoore4

+1

對不起,但「不起作用」不是一個好問題的描述。你有錯誤信息嗎?崩潰?例外?根本沒有數據?您是否證實數據庫中有一行具有該值的文本ID? –

回答

2

首先,ID是一個整數,所以它不應該用引號''傳遞。您在查詢中將frm2.FeedSelectListBox.SelectedValue作爲字符串傳遞,但您應該在查詢中傳遞它的值,以便對它進行評估並使查詢變爲可執行。

OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = "+frm2.FeedSelectListBox.SelectedValue, Connection); 

    OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = "+FeedSelectedID, Connection); 
+0

坦克它的工作,現在如果列表框有多選擇屬性,應該如何編寫一個查詢來獲取列表框的所有選定值? –