hai ragione... chiedo venia...

Allora, questo è il codice parametrico

public static DataSet eseguiSelectDataParametrica(string query, String data1, String data2)
{

string con = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\prova.mdb;";
OleDbConnection connessione = new OleDbConnection(con);
connessione.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(query, connessione);
myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@data1", 1));
myCommand.SelectCommand.Parameters["@data1"].Value = data1;
myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@data2", 2));
myCommand.SelectCommand.Parameters["@data2"].Value = data2;
DataSet ds = new DataSet();

myCommand.Fill(ds, "scad");

connessione.Close();

return ds;
}

e la query che viene passata è la seguente

"select * from scad where data >= @data1 and data <= @data2 order by data ASC"

mentre invece, questo è il codice non parametrico

public static DataSet eseguiSelect(string query)
{

string con = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\prova.mdb;";
OleDbConnection connessione = new OleDbConnection(con);
connessione.Open();

OleDbCommand mycommand = new OleDbCommand(query,connessione);
mycommand.CommandText = query;

OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = mycommand;
DataSet ds = new DataSet();

adapter.Fill(ds);




connessione.Close();

return ds;
}

e la query che viene passata è

"select * from scad where data >= data1 and data <= data2 order by data ASC"

ovviamente, in enrambi i casi, data1 e data2 sono due stringhe del tipo gg/mm/aaaa