Suche Datensatz in ACCESS-DATENBANK mit c#
ich bin auf der Suche der Datensätze auf der Grundlage der Eingaben vom Benutzer in msaccess-Datenbank.
unten ist der code
string strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Employees.mdb";
string strSql = "SELECT * FROM tbl_employees where description like '" + txtsearch.Text.ToString() + "*'";
OleDbConnection con = new OleDbConnection(strProvider);
OleDbCommand cmd = new OleDbCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
OleDbDataReader dr = cmd.ExecuteReader();
int columnCount = dr.FieldCount;
Wenn ich lief die gleiche Abfrage in meinem SQLView von msaccess, erhalte ich die Datensätze aber bei mir lief es im VS bin ich nicht immer alle Datensätze.
- Gibt es einen Unterschied irgendwie zwischen dem, was du in der
LIKE
im test gegen das, was Sie bekommen vontxtsearch.Text.ToString()
? - Nein, es gibt keinen Unterschied
- Was ist
dr.FieldCount
zurück? - Legen Sie einen Haltepunkt in Ihrem
OleDbConnection...
Linie und wenn Sie dort sind, überprüfen Sie den Wert IhresstrSql
. Und sagen Sie uns, was Sie schreibt..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Ihr sollte das "matching" geändert werden:
%
ist der erforderliche Platzhalter, und das ist wahrscheinlich das, was hier passiert. Zugang ermöglichen die*
und vielleicht beides, aber die OleDb-Abfrage ablehnen, die*
. In der Tat, ich glaube, dass OleDb verwendet immer den Kompatibilitäts-Modus (ANSI-92-Abfragemodus).