独上高楼网站
  •    你所在位置:首页 VS.netC#基础知识〉Visual C#通用模块开发:DataGrid控件
  • Visual C#通用模块开发:DataGrid控件
  • 作者:Visual C#模块移植  文章来源:希赛网  发布日期:2007-11-13  浏览次数:1002
  • 打印这篇文章
  •    在实际的应用项目中,通常需要把用ADO.NET组件获得的数据信息显示在界面上,供用户浏览或修改。可以通过使用.NET的DataGrid控件实现这种功能。

        DataGrid控件与数据绑定

        DataGrid控件的主要目的是实现“数据绑定”(Data Binding),即把DataGrid控件上显示的数据同后台数据库的数据绑定在一起,同步地一起变化。

        另外,DataGrid控件以表格的形式显示了查询到的数据结果集,默认的访问方式是只读而不能修改,通过设置,可以实现记录的修改和删除功能。

        DataGrid代码示例

        通过以下的步骤,能将数据库里的数据动态绑定到DataGrid对象里并显示。
        (1) 在D盘下建立一个Access类型的数据库,命名为Student.mdb。在其中新建一张StudentInfo的表,其中的字段如表2-11所示。    

     字    段  中 文 描 述  数 据 类 型  备    注
     SID  学号  文本  主键
     SName  姓名  文本  —
     Sex  性别  文本  —

    表2-11  StudentInfo表字段说明

        注意:本书表中“—”表示无须设置相关信息。
        完成后往其中插入一些记录,如(001, Tom, Male)。

        (2) 打开Visual Studio 2005环境后,选择“文件”|“新建”|“新建网站”命令,在弹出的“新建网站”对话框中选择“ASP.NET项目”,输入网站名 testDataGrid和路径C:\root\DataGrid,登录模块所有代码和配置文件均放在此项目下。

        (3) 在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”命令,新建一个Web配置文件,命名为Web.config。该配置文件主要用来管理登录模块的一些全局性数据。

        其中,在配置文件里设置数据库的连接属性,使用OleDB的Data Provider,连接到Access数据源上,代码如下:
        
        
        Microsoft.Jet.OleDB.4.0;Data Source= D:\login.mdb ">
        

        

        (4) 在集成开发环境中的“解决方案资源管理器”里,选中项目,右击,在弹出的快捷菜单中选择“添加新项”命令,新建一个Web窗体,命名为showDataGrid.aspx。

        (5) 打开“工具箱”的“Web窗体”,从中拖曳一个DataGrid控件到页面上,从DataGrid的属性栏中,可以看到该DataGrid对象叫DataGrid1。选中DataGridView控件,右击,在弹出的快捷菜单中选择“属性”命令,在属性栏的Columns中单击“…”按钮,在弹出的“编辑列”对话框中,通过“添加”命令,依次向DataGridView控件里添加“学号”、“姓名”和“性别”3列,并把每列的DataPropertyName设置成该列对应的数据库字段,用于数据绑定。具体设置如表2-12所示。    

     数 据 列 名  DataPropertyName
     学号  SID
     姓名  SName
     性别  Sex

    表2-12  DataGridView的Columns属性数据列信息

        (6) 双击窗体的空白处,进入相应的逻辑代码文件showDataGrid.aspx.cs。在该文件的顶端,添加数据库访问引用的命名空间语句:

       using System.Data.SqlClient;

     

        表2-12 DataGridView的Columns属性数据列信息并在class的开头添加连接数据库的字符串定义:
        private static string strConnect = System.Configuration.ConfigurationManager.AppSettings["connStr"];

     

        然后在该页面的Page_Load方法里添加以下代码:
        // 数据库连接
        OleDbConnection objConnection = new OleDbConnection(strConnect);
        // 数据库命令
        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数据库绑定,显示数据库里的学生信息。

     

  • 打印这篇文章
  • 与本文主题相关的文章
  • 返回首页