我正在开发一个应用程序,我需要从2个timePickers中选择最大和最小的日期来选择*从使用日期作为条件。
我有这个:
var select = "SELECT * from inventario where ifechaCompra > "+diarioFecha1.Text+" and ifechaCompra < "+diarioFecha2.Text+"";
SqlCeConnection con = new SqlCeConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conexionDB"].ConnectionString);
var dataAdapter = new SqlCeDataAdapter(select, con);
var commandBuilder = new SqlCeCommandBuilder(dataAdapter);
var ds = new DataSet();
dataAdapter.Fill(ds);
tablaInventario.ReadOnly = true;
tablaInventario.DataSource = ds.Tables[0];
奇怪的是,如果不是< "+diarioFecha2.Text+"
,我会手动编写一个可行的日期,例如'01/01/2014'
,但只能在两个日期之一...
我没有得到任何错误,它只是刷新dgv而根本没有数据。
PS:我知道我应该使用参数但是在填充dgv时我不知道怎么做,只有插入语句,所以如果有人可以帮助我那么我'非常感激..
答案 0 :(得分:1)
我认为你只是错过了单引号:
var select = "SELECT * from inventario where ifechaCompra > '" + diarioFecha1.Text + "' and ifechaCompra < '" + diarioFecha2.Text + "'";
SqlCeConnection con = new SqlCeConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conexionDB"].ConnectionString);
var dataAdapter = new SqlCeDataAdapter(select, con);
var commandBuilder = new SqlCeCommandBuilder(dataAdapter);
var ds = new DataSet();
dataAdapter.Fill(ds);
tablaInventario.ReadOnly = true;
tablaInventario.DataSource = ds.Tables[0];
我还建议使用格式为yyyymmdd的日期。