Amigo, segue um exemplo filtrando uma tabela de vendas:
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
System.Text.StringBuilder strSQL = new System.Text.StringBuilder();
strSQL.Append("SELECT * FROM VENDA WHERE ");
strSQL.Append("CAST(FLOOR(CAST(DtVendas AS FLOAT))AS DATETIME) = ");
strSQL.Append("CAST(FLOOR(CAST(@DtVendas AS FLOAT))AS DATETIME)");
//Instancia a conexão com banco,capturando a string de conexão no web.config
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["exampleConnectionString"].ToString()))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(strSQL.ToString(), conn))
{
//Parâmetros
cmd.Parameters.Add("@DtVendas", SqlDbType.DateTime).Value = Calendar1.SelectedDate;
SqlDataAdapter dta = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dta.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
}
veja que no comando sql:
SELECT * FROM VENDA WHERE CAST(FLOOR(CAST(DtVendas AS FLOAT))AS DATETIME) = CAST(FLOOR(CAST(@DtVendas AS FLOAT))AS DATETIME)
o CAST(FLOOR(CAST serve para isolar o que é data de hora. isso não é necessário se na sua tabela você armazena somente a data. se for data e hora, é bom fazer assim.
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)