2017-07-28 57 views
0

我正在開發一個應用程序,我需要從2個時間選擇器中選擇最大和最小的日期,以將選擇*用作日期條件。選擇行日期> x和日期<y

我有這樣的:

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的時候,我不知道該怎麼做,只能使用insert語句,所以如果有人可以幫助我,那我會非常感謝..

回答

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格式的日期。