Buongiorno a tutti, ho un problema con il seguente codice:
static System.Configuration.ConnectionStringSettings conn = ConfigurationManager.ConnectionStrings["MyDataBase"];
public SqlCeConnection cn = new SqlCeConnection(conn.ConnectionString);
public string dataChoice = DateTime.Now.ToShortDateString();
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
DateTime dataCh = DateTime.Parse(dataChoice);
//sql_ordine = "SELECT * FROM [ORDINI] ORDER BY ID DESC ";
sql_ordine = "SELECT * FROM [ORDINI] WHERE (DATA_RICHIESTA>='" + dataCh + "') ORDER BY Id DESC ";
populateGridViewOrdini();
PanelCarrello.Visible = false;
populateDropdate();
}
}
public void populateGridViewOrdini()
{
//sql = "SELECT * FROM [PRODOTTI] WHERE ((Categoria='" + "ACQUE BIBITE" + "') AND (Attivo='" + true + "')) ORDER BY OrderID ";
DataTable table = new DataTable();
using (SqlCeCommand cmd = new SqlCeCommand(sql_ordine, cn))
{
if (cmd.Connection.State != ConnectionState.Open)
{
cmd.Connection.Open();
}
// get the adapter object and attach the command object to it
using (SqlCeDataAdapter ad = new SqlCeDataAdapter(cmd))
{
// fire Fill method to fetch the data and fill into DataTable
ad.Fill(table);
}
cmd.Connection.Close();
}
// specify the data source for the GridView
GridViewOrdini.DataSource = table;
// bind the data now
GridViewOrdini.DataBind();
}
Mi ritorna (da debug in
ad.Fill(table) );
Si è verificata l'eccezione System.Data.SqlServerCe.SqlCeException
HResult=0x80004005
Messaggio=Tipo di dati non valido per l'operazione booleana. [ Data type (if known) = datetime,Data type (if known) = nvarchar ]
Origine=SQL Server Compact ADO.NET Data Provider
La colonna DATA_RICHIESTA è del tipo datetime.
In poche parole non esegue il confronto delle date nella query.
Il confronto funziona con tutte le colonne del database ad esclusione delle colonne datetime.
Qualcuno ha una soluzione?
Grazie a tutti!
Giorgio
Modificato da orsattigiorgio il 25 giugno 2020 13:29 -