2016-04-06 17 views
-3

how to select specific feid using a filter from access in C#Was ist der Unterschied zwischen diesen Abfragen?

Nach habe ich eine andere Frage:

ich diese Methode wieder zu einem Click-Ereignis von SelectFeedbtn_Click und es funktioniert Whit:

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

aber wenn ich will eine ID aus FeedSelectListBox dass DisplayMember erhalten ist Feed Name/Description und ValueMember ist ID es zeigt eine Ausnahme: {"Data type mismatch in criteria expression."},
die Abfrage lautet:

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

Was soll ich tun?

+1

Erhalten Sie Fehler oder erhalten Sie nur keine Ergebnisse? – Brad

+1

ID ist wahrscheinlich numerisch. Entfernen Sie die einzelnen Anführungszeichen um sie herum. "Wählen Sie * aus der FeedLibrary, wo ID = 2" – smoore4

+1

Sorry, aber "funktioniert nicht" ist keine gute Beschreibung eines Problems. Erhalten Sie eine Fehlermeldung? Absturz? Ausnahme? überhaupt keine Daten? Haben Sie überprüft, ob in der Datenbank eine Zeile mit einer Text-ID mit diesem Wert vorhanden ist? –

Antwort

2

Das erste, ID ist ein Int, so sollte es nicht in Anführungszeichen '' übergeben werden. Sie übergeben frm2.FeedSelectListBox.SelectedValue als Zeichenfolge in Abfrage, aber Sie sollten seinen Wert mit in der Abfrage übergeben, so dass es ausgewertet wird und Ihre Abfrage ausführbar wird.

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

Tanks hat es funktioniert, jetzt, wenn Listbox Multi Selection-Eigenschaft, wie sollte eine Abfrage schreiben, um alle ausgewählten Wert der Listbox zu bekommen? –

Verwandte Themen