C# ADO Wyszukiwanie danych, nie uwzględnia parametrów OleDbCommand

0

Witam serdecznie.
Piszę mały program przy użyciu bazy mdb(Microsoft Data Access)
mam taki kawałek kodu

OleDbConnection database;
string strPath;

strPath = AppDomain.CurrentDomain.BaseDirectory + "Baza.mdb";
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath;
database = new OleDbConnection(connectionString);
database.Open();

string findText = "t";
string queryString = "SELECT Contactnr,Name FROM Person WHERE Name LIKE '%@p1%' ORDER BY Name;";
            OleDbCommand command = new OleDbCommand(queryString,database);
            DataTable data = null;
           
            command.Connection = database;
            command.Parameters.Add(new OleDbParameter("@p1", findText));
            
            
            OleDbDataAdapter dataAdapter = null;
                
            data = new DataTable();
            dataAdapter = new OleDbDataAdapter(command);
            dataAdapter.Fill(data);
database.close();

Ten kod nie zwraca mi wyników żadnych
a gdy zamiast @p1 w słowie like dam czystego stringa np. "t" to bez problemowo wyszukuje mi dane.
Co mam nie tak ??, nie uwzględnia mi OleDbParametr wcale o co chodzi ??
Dzięki serdeczne za pomoc.

0

Hmm dawno tego nie dotykalem ale:

  1. sprawdz czy @ jest uzywana jako parametr dla tego drivera (znaki sa rozne dla roznych baz/driverow)
  2. sprawdz ....Name LIKE @p1... i ustaw jako @p1="%"+fineText+"%" - to mi sie wydaje bardziej prawdopodobne
0

Znalazłem na forum jakimś Angielskojęzycznym że nie wolno podawać znaków obok czyli musi wyglądać zapytanie tak

string findText = "t";
string queryString = "SELECT Contactnr,Name FROM Person WHERE Name LIKE @p1 ORDER BY Name;";
            OleDbCommand command = new OleDbCommand(queryString,database);
            DataTable data = null;

            command.Connection = database;
            command.Parameters.Add(new OleDbParameter("@p1", "%" + findText + "%"));

Taki zapis działa ok, więc temat do zamknięcia..
P.S Małpa jest wymagana w tym driverze..
Dzięki.
Pozdrowionka

1 użytkowników online, w tym zalogowanych: 0, gości: 1