Hi,
I'm a newbie in C#, I wrote an OLEDb query with positioned parameter. It seems not working. Can anyone please point out where I've done wrong? Thanks in advance.
Here is my code:
using
(OleDbConnection conn = new OleDbConnection(connString)){
String key = textbox1.text;
string cmd = "Select * from [" + filename + "] Where " + fieldname + " like ?";
OleDbCommand command= new OleDbCommand(cmd, conn);
OleDbParameter parameter = new OleDbParameter("@key",OleDbType.VarChar,30);
parameter.Value = "'%"+key+"%'";
command.Parameters.Add(parameter);
conn.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd, conn);
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
DataTable
table = new DataTable();table.Locale = System.Globalization.
CultureInfo.InvariantCulture;dataAdapter.Fill(table);
}
Jan MontanoPosted Jan 5, 2009, 10:31 PM
instead of using dataadapter use this:
OleDbDataReader reader = command.ExecuteReader();while(reader.Read()){
MessageBox.Show("test");
---------}
reader.Close();
con.Close();
during debug, does it actually enter the reader.Read() block?
mel CPosted Jan 5, 2009, 10:20 PM
Hi Jan,
Thanks for the suggestion. I tried, but it's still the same.
The parameter didn't add on to the '?' in cmd statement.
the cmd statement output is still "Select * from [ABC.csv] Where fieldname like ?"
instead of "Select * from [ABC.csv] Where fieldname like '%key%'"
I tried command.Parameters.AddWithValue("?", "'%" + key + "%'"), also not working.
Jan MontanoPosted Jan 5, 2009, 9:24 PM
OleDbParameter parameter = new OleDbParameter("@key",OleDbType.VarChar,30);
withOleDbParameter parameter = new OleDbParameter();
with