logo 广告
Loading...
 导航 所在位置:论坛首页 -> ┈┋电脑网络┋┈ -> Asp/Asp.Net教程 -> Visual C#通用模块开发:DataGrid控件
回复
标题:Visual C#通用模块开发:DataGrid控件收藏 编辑 删除 楼主 | 上一篇 下一篇
discuz
头像
等级:社区游侠
权限:普通用户
积分:30
金钱:137
声望:57
经验:57
发帖数:57
注册:2008年8月24日
资料 短消息2008-8-28 9:28:42
在实际的应用项目中,通常需要把用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数据源上,代码如下:
    <configuration>
    <appSettings>
    <add key="connStr" value=" Porvider = Microsoft.Jet.OleDB.4.0;Data Source= D:\login.mdb "> </add>
    </appSettings>
    <connectionStrings/>

    (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。在该文件的顶端,添加数据库访问引用的命名空间语句:

 

签名

2008-8-28 9:28:42 顶部
discuz
头像
等级:社区游侠
权限:普通用户
积分:30
金钱:137
声望:57
经验:57
发帖数:57
注册:2008年8月24日
  资料  消息 短消息编辑 删除 引用 第2楼

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数据表里。

签名
2008-8-28 9:29:04 顶部
discuz
头像
等级:社区游侠
权限:普通用户
积分:30
金钱:137
声望:57
经验:57
发帖数:57
注册:2008年8月24日
  资料  消息 短消息编辑 删除 引用 第3楼

(4) 将DataGrid的数据源设置成objDataset数据表,实现数据绑定。
    这样,当打开此页面时,DataGrid就能与Access数据库绑定,显示数据库里的学生信息。

签名
2008-8-28 9:29:40 顶部
第1页 共1页 共2个回复     <<    >>    
 快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com