Ho provato con successo il codice che hai postato, ovviamente mi sono fatto un Database con Access, una Tabella Anagrafica con tre campi Nome,Cognome,Data.
Questo il codice che ho utilizzato, chiaramente adattato alla mia prova, ma il succo non cambia:
codice:
private void Button1_Click(System.Object sender, System.EventArgs e)
{
eseguiSelectDataParametrica("SELECT Nome FROM Anagrafica WHERE Data BETWEEN @data1 AND @data2", DateTime.Now, DateTime.Now.AddDays(-365));
}
public void eseguiSelectDataParametrica(string query, string data1, string data2)
{
string con = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\prova.mdb;";
DataTable obj = null;
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();
obj = ds.Tables[0];
for (int n = 0; n <= obj.Rows.Count - 1; n++) {
ListBox1.Items.Add(obj.Rows[n][0]);
}
}
Scusa in C#
codice:
public void eseguiSelectDataParametrica(string query, string data1, string data2)
{
string con = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\prova.mdb;";
DataTable obj = null;
OleDbConnection connessione = new OleDbConnection(con);
connessione.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(query, connessione);
myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@data1", data1));
myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@data2", data2));
DataSet ds = new DataSet();
myCommand.Fill(ds, "scad");
connessione.Close();
obj = ds.Tables[0];
for (int n = 0; n <= obj.Rows.Count - 1; n++)
{
listBox1.Items.Add(obj.Rows[n][0]);
}
}
private void button1_Click(object sender, EventArgs e)
{
eseguiSelectDataParametrica("SELECT Nome FROM Anagrafica WHERE Data BETWEEN @data1 AND @data2", DateTime.Now.ToString (), DateTime.Now.AddDays(-365).ToString());
}
Funziona regolarmente.