在实际的应用项目中,通常需要把用ADO.NET组件获得的数据信息显示在界面上,供用户浏览或修改。可以通过使用.NET的DataGrid控件实现这种功能。
C# DataGrid控件与数据绑定
C# DataGrid控件的主要目的是实现“数据绑定”(Data Binding),即把DataGrid控件上显示的数据同后台数据库的数据绑定在一起,同步地一起变化。
另外,DataGrid控件以表格的形式显示了查询到的数据结果集,默认的访问方式是只读而不能修改,通过设置,可以实现记录的修改和删除功能。
DataGrid代码示例
通过以下的步骤,能将数据库里的数据动态绑定到DataGrid对象里并显示。
(1) 在D盘下建立一个Access类型的数据库,命名为Student.mdb。
(2) 打开Visual Studio 2005环境后,选择“文件”|“新建”|“新建网站”命令,在弹出的“新建网站”对话框中选择“ASP.NET项目”,输入网站名 testDataGrid和路径C:\root\DataGrid,登录模块所有代码和配置文件均放在此项目下。
(3) 在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”命令,新建一个Web配置文件,命名为Web.config。该配置文件主要用来管理登录模块的一些全局性数据。
其中,在配置文件里设置数据库的连接属性,使用OleDB的Data Provider,连接到Access数据源上,代码如下:
- <configuration>
- <appSettings>
- <addkeyaddkey="connStr"value="Porvider=Microsoft.Jet.OleDB.4.0;
- DDataSource=D:\login.mdb"></add>
- </appSettings>
- <connectionStrings/>
(4) 在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”命令,新建一个Web窗体,命名为showDataGrid.aspx。
(5) 打开“工具箱”的“Web窗体”,从中拖曳一个C# DataGrid控件到页面上,从DataGrid的属性栏中,可以看到该DataGrid对象叫 DataGrid1。选中DataGridView控件,右击,在弹出的快捷菜单中选择“属性”命令,在属性栏的Columns中单击“…”按钮,在弹出的“编辑列”对话框中,通过“添加”命令,依次向DataGridView控件里添加“学号”、“姓名”和“性别”3列,并把每列的 DataPropertyName设置成该列对应的数据库字段,用于数据绑定。
(6) 双击窗体的空白处,进入相应的逻辑代码文件showDataGrid.aspx.cs。在该文件的顶端,添加数据库访问引用的命名空间语句:
- privatestaticstringstrConnect=System.Configuration.ConfigurationManager.AppSettings["connStr"];
- 然后在该页面的Page_Load方法里添加以下代码:
- //数据库连接
- OleDbConnectionobjConnection=newOleDbConnection(strConnect);
- //数据库命令
- OleDbCommandobjCommand=newOleDbCommand("",objConnection);
- try
- {
- //设置Sql语句
- objCommand.CommandText="SELECTSID,SName,SexFROMStudentInfoORDERBYSID";
- //打开数据库连接
- if(objConnection.State==ConnectionState.Closed)
- {
- objConnection.Open();
- }
- //创建DataSet对象
- DataSetobjDataset=newDataSet();
- //使用DataAdapter对象填充DataSet
- OleDbDataAdapterobjAdapter=newOleDbDataAdapter(objCommand);
- objAdapter.Fill(objDataset,"objDataset");
- DataGrid1.DataSource=objDataset.Tables["objDataset"];
- //数据绑定
- DataGrid1.DataBind();
- }
- catch(SqlExceptionexp)
- {
- MessageBox.Show(exp.Message,"错误",MessageBoxButtons.OK);
- }
- finally
- {
- //关闭数据库连接
- if(objConnection.State==ConnectionState.Open)
- {
- objConnection.Close();
- }
- }
【编辑推荐】