关键词:Winform、DataGridView、SqlServer
一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询。
一、为DataGridView添加数据源并对DataGridView内容进行操作
(1)引入域名空间:using System.Data.SqlClient;
(2)定义类变量并实例化对象
protected static String strCon = "Data Source=192.168.1.1;Initial Catalog=Monitor;Integrated Security=False;User ID=sa;Password=....";
protected SqlConnection con = new SqlConnection(strCon);
“Integrated Security”字段为True,表示使用Windows身份验证方式进行数据库登录,登录ID和密码没用;为False,表示使用SqlServer身份验证方式登录数据库。该字段还可设置为SSPI,相当于True。
(3)编写函数
函数功能:设计SQL查询语句,连接数据库获取查询结果并填充DataGridView控件,然后根据数据内容修改单元格背景颜色。添加定时器周期刷新,直接将函数在定时器方法中调用即可。
如果SQL语句查询出来的结果展示的时候需要进行简单处理,建议在SQL查询的时候进行。创建SQL语句命令对象,执行查询返回结果集。得到结果集之后,手动给DataGridView绑定数据源,利用SqlDataReader填充DataGridView。注意数据库连接的打开与关闭。这一步可以在DataGridView控件上展示原始的SQL查询出来的数据。如果需要在Form点开的时候进行初始化,在Form1_Load函数中调用该函数即可。
右键Form选择属性,然后选择Form方法,找到Load方法,双击创建函数,进行加载窗体的初始化函数编写。
//使用SqlDataReader填充DataGridView。cmd为创建命令对象,指定要执行sql语句与连接对象con返回的结果
//SqlCommand cmd = new SqlCommand(sql, con);String sql = "";
SqlDataReader dr = cmd.ExecuteReader();
BindingSource bs = new BindingSource();
bs.DataSource = dr;
this.dataGridView1.DataSource = bs;
得到数据源后可以根据需求对DataGridView的数据展示进行相应的处理。列的宽度和行的高度的自动调整。数据源标题的修改,既可以在SQL查询的时候进行,也可以查询出结果后对DataGridView的HeaderText进行修改,例如:
this.dataGridView1.Columns["Status_Name"].HeaderText = "连接状态";
其中“Status_Name”为SQL语句查询出来的数据列的列名,修改HeaderText只是修改用户看到列名(HeaderText),实际的操作还是针对实际查询的列名(Name),如果需要根据列的内容进行对单元格的一些操作,查询列的时候需要查询Name,例如如果需要根据单元格内容修改单元格背景颜色,查询“Status_Name”的值而不是查询"连接状态"的值,代码如下:
//根据连接状态改变状态表的背景颜色
int rowCount = this.dataG