2017-07-28 10 views
0

Je développe une application et je dois choisir parmi 2 timePickers la plus grande et la plus petite date pour faire un select * d'utiliser les dates comme conditions.Sélectionnez les lignes où date> x ET date <y

J'ai ceci:

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]; 

La chose étrange est que si au lieu de < "+diarioFecha2.Text+" j'écris manuellement une date cela fonctionne, par exemple '01/01/2014', mais seulement sur l'une des deux dates ... I don N'obtenez aucune erreur, il rafraîchit simplement le dgv sans données du tout.

PS: Je sais que je devrais utiliser des paramètres, mais quand il s'agit de remplir un dgv avec ça je ne sais pas comment le faire, seulement avec des instructions d'insertion, donc si quelqu'un peut m'aider avec ça très reconnaissant ..

Répondre

1

Je pense que vous manquez juste les guillemets simples:

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]; 

Je recommande également d'utiliser les dates au format aaaammjj.