请教一下,我从数据库的取值语句如下,是采用datagridview和文本框text结合使用,下面想采用按时间段来查询(如所附截图所框),所查结果并按时间,降序排序,请各位指导一下如何处理,
另外,这些相关语句是否需要分开,若是在同一条语句上写,是否太长了;
private void button1_Click(object sender, EventArgs e)
{
//连接数据库
conn = new SqlConnection("server=IP;database=DB;user=sa;password=passw0rd");
conn.Open();
//查询条件
SqlString = "select EquipmentName,CreateTime,ParamsName,Value from b_HistoricalData where Equipmentname = '" + comboBox1.Text + "'and ParamsName like '%" + textBox1.Text + "%'";
//配置了与下拉列表绑定,按其查询分类显示
//加载数据并显示
try
{
//查询条件和SqlConnection连接
SqlCommand cmd = new SqlCommand(SqlString, conn);
//数据适配器
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
//DataTable存储数据
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
catch
{ }
finally
{
conn.Close();
}
以下答案引用自GPT-3大模型,请合理使用:
如果要按时间段来查询并降序排序,可以使用如下的SQL语句:
select EquipmentName,CreateTime,ParamsName,Value from b_HistoricalData
where Equipmentname = 'xxx'and ParamsName like '%yyy%'
and CreateTime between '2018-01-01' and '2020-01-01'
ORDER BY CreateTime DESC;
在上述SQL语句中,'xxx'和'yyy'分别可以用comboBox1.Text和textBox1.Text来替换,而'2018-01-01'和'2020-01-01'可以替换为你的起始时间和结束时间。最后,根据你发布的截图,应该可以使用DateTimePicker来替换上面的时间,获得dateTimePicker的时间可以使用语句dateTimePicker1.Value.ToString("yyyy-MM-dd")。
所以,最终的SQL语句可以改写为:
select EquipmentName,CreateTime,ParamsName,Value from b_HistoricalData
where Equipmentname = '" + comboBox1.Text + "'and ParamsName like '%" + textBox1.Text + "%'
and CreateTime between '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "'
ORDER BY CreateTime DESC;
如果是在同一条语句上编写,不会太长,但是建议还是将这两个条件分开,也更加直观易懂。
如果我的回答解决了您的问题,请采纳我的回答
SqlString = "select EquipmentName,CreateTime,ParamsName,Value from b_HistoricalData where Equipmentname = '" + comboBox1.Text + "'and ParamsName like '%" + textBox1.Text + "%' and CreateTime >= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") +"' and CreateTime <= '" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "' order by CreateTime asc";
就在加条件呗 and 时间字段>='时间bengin' and 时间字段<='时间end ' order by 时间字段 desc 另外可以用 offset x rows fetch next x rows only做分页处理
另外语句使者c#操作数据库的语句还是sql 其实让人看的懂就行不别扭就行
非常感谢,各位同仁的指导 ,我试一下哈,再次感谢了;
不知道你这个问题是否已经解决, 如果还没有解决的话: