下面就来看看如何用这个DataGrid。以上这个实例用到的DataGrid一些简单功能,并没有高深的东西。只是这个“有效”字段是手动添加的。
原本我想用这样方法:
sql = " SELECT A, True as 有效 FROM Table";
OleDbConnection DBConn = new OleDbConnection(...);
OleDbDataAdapter DBAdapter = new OleDbDataAdapter(sql,DBConn);
DBAdapter.Fill(DataSet1, "SO2");
DataGrid1.DataSource = DataSet1.Tables["SO2"];
但结果没有出现想要的效果,在“有效”格里只是显示"True"。
以下是实现过程:
(1)实现SQL查询,计算每个小时的平均值。要查询的时间是从昨日的12:00到今天的11:59:59。
用时间控件,df为起始时间,dw为终止日间
dw = "#" + datSO2.Value.Date.ToString("yyyy-MM-dd") + " 11:59:59#";
df = "#" + datSO2.Value.Date.AddDays(-1).ToString("yyyy-MM-dd") + " 12:00:00#";
SQL查询语句
sql = "SELECT DatePart('h',DataTime) AS 时段 "
+ ",AVG(DataValue) AS 小时平均值 "
+ "FROM SO2MinData "
+ "WHERE DataTime BETWEEN " + df + " AND " + dw + " "
+ "GROUP BY DatePart('h',DataTime)";
最后填充DataSet
DBAdapter = new OleDbDataAdapter(sql,DBConn);
DBDataSet.Tables["SO2"].Clear();
DBAdapter.Fill(DBDataSet, "SO2");
接下来就是小小技巧,在Table中增加一列
DBDataSet.Tables["SO2"].Columns.Add("有效",System.Type.GetType("System.Boolean"));
grdSO2.DataSource = DBDataSet.Tables["SO2"];
最后不讨论一些计算等代码了,程序没有什么复杂,开个小头。