在实际的应用项目中通常需要把用ADONET组件获得的数据信息显示在界面上供用户浏览或修改可以通过使用NET的DataGrid控件实现这种功能
DataGrid控件与数据绑定
DataGrid控件的主要目的是实现数据绑定(Data Binding)即把DataGrid控件上显示的数据同后台数据库的数据绑定在一起同步地一起变化
另外DataGrid控件以表格的形式显示了查询到的数据结果集默认的访问方式是只读而不能修改通过设置可以实现记录的修改和删除功能
DataGrid代码示例
通过以下的步骤能将数据库里的数据动态绑定到DataGrid对象里并显示
() 在D盘下建立一个Access类型的数据库命名为Studentmdb在其中新建一张StudentInfo的表其中的字段如表所示
字 段中 文 描 述数 据 类 型备 注SID学号文本主键SName姓名文本—Sex性别文本—
表 StudentInfo表字段说明
注意本书表中—表示无须设置相关信息
完成后往其中插入一些记录如( Tom Male)
() 打开Visual Studio 环境后选择文件|新建|新建网站命令在弹出的新建网站对话框中选择ASPNET项目输入网站名 testDataGrid和路径C:\root\DataGrid登录模块所有代码和配置文件均放在此项目下
() 在集成开发环境中的解决方案资源管理器里选中项目右击在弹出的快捷菜单中选择添加新项命令新建一个Web配置文件命名为nfig该配置文件主要用来管理登录模块的一些全局性数据
其中在配置文件里设置数据库的连接属性使用OleDB的Data Provider连接到Access数据源上代码如下
<configuration>
<appSettings>
<add key=connStr value= Porvider = MicrosoftJetOleDB;Data Source= D:\loginmdb > </add>
</appSettings>
<connectionStrings/>
() 在集成开发环境中的解决方案资源管理器里选中项目右击在弹出的快捷菜单中选择添加新项命令新建一个Web窗体命名为showDataGridaspx
() 打开工具箱的Web窗体从中拖曳一个DataGrid控件到页面上从DataGrid的属性栏中可以看到该DataGrid对象叫DataGrid选中DataGridView控件右击在弹出的快捷菜单中选择属性命令在属性栏的Columns中单击…按钮在弹出的编辑列对话框中通过添加命令依次向DataGridView控件里添加学号姓名和性别列并把每列的DataPropertyName设置成该列对应的数据库字段用于数据绑定具体设置如表所示
数 据 列 名DataPropertyName学号SID姓名SName性别Sex
表 DataGridView的Columns属性数据列信息
() 双击窗体的空白处进入相应的逻辑代码文件showDataGridaspxcs在该文件的顶端添加数据库访问引用的命名空间语句
using SystemDataSqlClient;
表 DataGridView的Columns属性数据列信息并在class的开头添加连接数据库的字符串定义
private static string strConnect = SystemConfigurationConfigurationManagerAppSettings[connStr];
然后在该页面的Page_Load方法里添加以下代码
// 数据库连接
OleDbConnection objConnection = new OleDbConnection(strConnect);
// 数据库命令
OleDbCommand objCommand = new OleDbCommand( objConnection);
try
{
// 设置Sql语句
objCommandCommandText =SELECT SIDSNameSex FROM StudentInfo ORDER BY SID;
// 打开数据库连接
if (objConnectionState == ConnectionStateClosed)
{
objConnectionOpen();
}
// 创建DataSet对象
DataSet objDataset = new DataSet();
// 使用DataAdapter对象填充DataSet
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand);
objAdapterFill(objDataset objDataset);
DataGridDataSource = objDatasetTables[objDataset];
//数据绑定
DataGridDataBind();
}
catch (SqlException exp)
{
MessageBoxShow(expMessage 错误 MessageBoxButtonsOK);
}
finally
{
// 关闭数据库连接
if (objConnectionState == ConnectionStateOpen)
{
objConnectionClose();
}
}
由于使用的是Data Provider所以ADONET组件的对象都以OleDb开头
上述代码的主要业务逻辑是
() 根据连接字符串创建数据库连接对象并根据连接对象创建 OLeDbCommand对象
() 根据SQL语句查询所有学生的信息以SID的顺序排列
() 使用OleDbDataApapter对象将查询结果填充到DataSet中的objDataset数据表里
() 将DataGrid的数据源设置成objDataset数据表实现数据绑定
这样当打开此页面时DataGrid就能与Access数据库绑定显示数据库里的学生信息