选择日期>的行x和日期< ÿ

时间:2017-07-28 21:45:37

标签: sql-server date select sql-server-ce where

我正在开发一个应用程序,我需要从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时我不知道怎么做,只有插入语句,所以如果有人可以帮助我那么我'非常感激..

1 个答案:

答案 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的日期。