在实际的应用项目中,可以通过使用.NET的DataGrid控件把数据库中的信息显示在界面上,供用户浏览或修改。
下面介绍使用DataGrid控件进行数据绑定的方法
DataGrid控件进行数据绑定后,可以实现DataGrid控件上显示的数据同后台数据库的数据绑定在一起,同步地一起变化。另外,DataGrid控件以表格的形式显示了查询到的数据结果集,默认的访问方式是只读而不能修改,通过设置,可以实现记录的修改和删除功能。
通过以下的步骤,能将数据库里的数据动态绑定到DataGrid对象里并显示。
(1)在D盘下建立一个Access类型的数据库,命名为Student.mdb。在其中新建一张StudentInfo的表,其中的字段如表1所示。
表1 StudentInfo表字段说明
字段名称 | 字段描述 | 数据类型 | 备注说明 |
SID | 学号 | 文本 | 主键 |
SName | 姓名 | 文本 | — |
SSex | 性别 | 文本 | — |
注意:表中“—”表示无须设置相关信息。
完成后往其中插入一些记录,如(001, Tom, 男)。
(2)打开Visual Studio 2005集成开发环境后,选择“文件”|“新建”|“新建网站”ming令,在弹出的“新建网站”对话框中选择“ASP.NET项目”,输入网站名 testDataGrid和路径C:/root/DataGrid,登录模块所有代码和配置文件均放在此项目下。
(3)在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”ming令,新建一个Web配置文件,命名为Web.config。该配置文件主要用来管理登录模块的一些全局性数据。
其中,在配置文件里设置数据库的连接属性,使用OleDB的Data Provider,连接到Access数据源上,代码如下:
<configuration>
<appSettings>
<add key="connStr" value=" Porvider = Microsoft.Jet.OleDB.4.0;Data Source= D:/Student.mdb"> </add>
</appSettings>
<connectionStrings/>
(4)在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”ming令,新建一个Web窗体,命名为showDataGrid.aspx。
(5) 打开“工具箱”的“Web窗体”,从中拖曳一个DataGrid控件到页面上,从DataGrid的属性栏中,可以看到该DataGrid对象叫DataGrid1。选中DataGridView控件,右击,在弹出的快捷菜单中选择“属性”ming令,在属性栏的Columns中单击“…”按钮,在弹出的“编辑列”对话框中,通过“添加”ming令,依次向DataGridView控件里添加“学号”、“姓名”和“性别”3列,并把每列的DataPropertyName设置成该列对应的数据库字段,用于数据绑定。具体设置如表2所示。
表2 DataGridView的Columns属性数据列信息
数 据 列 名 | DataPropertyName |
学号 | SID |
姓名 | SName |
性别 | SSex |
(6)双击窗体的空白处,进入相应的逻辑代码文件showDataGrid.aspx.cs。在该文件的顶端,添加数据库访问引用的命名空间语句:
using System.Data.SqlClient;
表2 DataGridView的Columns属性数据列信息并在class的开头添加连接数据库的字符串定义:
private static string strConnect = System.Configuration.ConfigurationManager.AppSettings["connStr"];
然后在该页面的Page_Load方法里添加以下代码:
// 数据库连接
OleDbConnection objConnection = new OleDbConnection(strConnect);
// 数据库ming令
OleDbCommand objCommand = new OleDbCommand("", objConnection);
try
{
// 设置Sql语句
objCommand.CommandText = "SELECT SID,SName,Sex FROM StudentInfo ORDER BY SID";
// 打开数据库连接
if (objConnection.State == ConnectionState.Closed)
{
objConnection.Open();
}
// 创建DataSet对象
DataSet objDataset = new DataSet();
// 使用DataAdapter对象填充DataSet
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand);
objAdapter.Fill(objDataset, "objDataset");
DataGrid1.DataSource = objDataset.Tables["objDataset"];
//数据绑定
DataGrid1.DataBind();
}
catch (SqlException exp)
{
MessageBox.Show(exp.Message, "错误", MessageBoxButtons.OK);
}
finally
{
// 关闭数据库连接
if (objConnection.State == ConnectionState.Open)
{
objConnection.Close();
}
}
由于使用的是Data Provider,所以ADO.NET组件的对象都以OleDb开头。
上述代码的主要业务逻辑是:
1) 根据连接字符串,创建数据库连接对象,并根据连接对象创建 OLeDbCommand对象。
2) 根据SQL语句,查询所有学生的信息,以SID的顺序排列。
3) 使用OleDbDataApapter对象,将查询结果填充到DataSet中的objDataset数据表里。
4) 将DataGrid的数据源设置成objDataset数据表,实现数据绑定。
这样,当打开此页面时,DataGrid就能与Access数据库绑定,显示数据库里的学生信息。
新闻热点
疑难解答
图片精选