利用两个DateTimePicker控件来选定一个日期范围作为查询条件,从数据库中获取这段时间内的数据
一、SQL语句使用between and来查询选定日期范围内的相关数据
效果展示:
实现代码:
// SQL语句使用between and,查询选定日期范围内相关数据
private void btnSearch_Click(object sender, EventArgs e)
{
//连接sql server数据库
string connString = "server=.;database=TBWRIMS;uid=test;pwd=test;connect timeout=5";
SqlConnection pSqlConnection = new SqlConnection(connString);
pSqlConnection.Open();
string sql = "select * from TH5 where date between'" + dtpStart.Value.ToString("yyyy-MM-dd") + "'" +
"and'" + dtpEnd.Value.ToString("yyyy-MM-dd") + "'";
SqlDataAdapter pSqlDataAdapter = new SqlDataAdapter(sql,connString);
DataSet pDataSet = new DataSet();
pSqlDataAdapter.Fill(pDataSet);
DataTable pDataTable = pDataSet.Tables[0];
//自定义datagridview列名
pDataTable.Columns[0].ColumnName = "日期";
pDataTable.Columns[1].ColumnName = "站点";
pDataTable.Columns[2].ColumnName = "水位(米)";
//绑定数据源
dgv.DataSource = pDataTable;
pSqlConnection.Close();
}
二、SQL语句使用datediff函数来查询选定日期范围内的相关数据
效果展示:
实现代码:
//SQL语句使用datediff函数,查询选定日期范围内相关数据
private void btnSearch2_Click(object sender, EventArgs e)
{
//获取DateTimePicker日期
DateTime dts = Convert.ToDateTime(dtpStart.Text);
DateTime dte = Convert.ToDateTime(dtpEnd.Text);
//连接sql server数据库
string connString = "server=.;database=TBWRIMS;uid=test;pwd=test;connect timeout=5";
SqlConnection pSqlConnection = new SqlConnection(connString);
pSqlConnection.Open();
//根据获得的日期参数,查找出指定日期范围内的数据,其中date为数据库字段名称。
string sql = "select * from TH5 where datediff(day,@dts,date)>=0"
+"and datediff(day,date,@dte)>=0";
SqlParameter[] sp = new SqlParameter[]{
new SqlParameter("@dts",dts),
new SqlParameter("@dte",dte)
};
SqlDataAdapter sda = new SqlDataAdapter(sql, connString);
sda.SelectCommand.Parameters.AddRange(sp);
DataTable dt = new DataTable();
sda.Fill(dt);
//自定义datagridview列名
dt.Columns[0].ColumnName = "日期";
dt.Columns[1].ColumnName = "站点";
dt.Columns[2].ColumnName = "水位(米)";
//绑定数据源
dgv.DataSource = dt;
pSqlConnection.Close();
}