首页 > 编程 > .NET > 正文

DataGrid控件进行数据绑定的方法

2024-07-10 12:38:05
字体:
来源:转载
供稿:网友

在实际的应用项目中,可以通过使用.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数据库绑定,显示数据库里的学生信息。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表