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