教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> C# >> VS2005中使用强类型DataSet简化开发 RSS订阅
VS2005中使用强类型DataSet简化开发
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

在日常开发中,为了编写数据的增加、更新、修改、删除等功能而不得不面对枯燥的

代码,做重复又重复的工作..NET 2.0正式版的发布,对我们程序开发人员来说无疑是

一件很大的喜事,Visual Studio 2005 的一些新的增强功能和ADO.NET 2.0的新特性

让我们开发高可伸缩的多层数据库应用程序更加简单和快捷.
     在.NET 1.1下就可以使用强类型数据集,可是在Visual Studio 2003里开发起来

还是有一些不方便,在Visual Studio 2005里对DataSet的设计视图做了很大的改进,

因为ADO.NET 2.0增加了TableAdapter对象,所以现在也可以在DataSet设计视图里添

加DataTable的表适配器.以前的typedDataSets只是一些数据实体(哑对象,只有属性

的类)的集合,并不能很方便的自我管理持久化,以及数据完整性验证等.现在可以很方

便的实现这些.
    下边通过一个例子来详细介绍如何通过vs2005来生成强类型DataSet简化开发流

程,生成可伸缩性的多层数据库应用程序.
    首先新建立一个Web网站项目,在[解决方案资源管理器]→[添加新项] →[数据集

],命名为Authors.xsd,由于强类型DataSet需要放到App_Code目录,如果此时项目文件

中没有App_Code目录,IDE会提示是否创建,我们选择"是"即可.
    此时IDE会自动打开我们刚才建立好的Authors.xsd文件,并且开始运行

TableAdapter配置向导,如果Web.Config没有数据库连结字符串,此时我们需要新建立

一个连接:选择[新建连结] →[Microsoft SQL Server] →[选择系统自带的pubs数

据库] →[将新建立的连结字符串保存到应用程序配置文件中].
    在接下来的选择命令类型的时候,IDE出来三个选项来供用户选择访问呢数据库的

形式:
1、 使用SQL语句,如果是单个表,向导可以自动生成 Insert,Update和Delete语句.本

例子也是使用的这种方法.
2、 创建新的存储过程.同样如果是单个表,向导可以自动生成 Insert,Update和

Delete语句.
3、 使用现有存储过程.需要为每一个命令选择相应的现有存储过程.
    我们这里选择[使用SQL语句] →[查询生成器] →[authors表,选择所有列],此时

查询生成器会自动给我们生成 SQL语句(SELECT authors.* FROM authors).[高级选

项],可以选择是否生成Insert,Update和Delete语句,使用开放式并发来防止并发冲突

,刷新数据表,用来验证 Insert和Update语句,为了能够更清晰的介绍使用方法,我们

这里全部都不选择,而让我们以后根据需要自行添加.[选择要生成的方法] ,我们只需

要使用[返回DataTable],其余的选项的对号去掉.
    此时创建向导会自动给我们生成"Select语句","数据表的映射",以及"Get方法".

我们创建的过程就结束了.这是我们发现DataSet.xsd会自动生成一个authors表和一

个包含Get方法的数据集authorsTableAdapter.
    同样,在我们建立好的数据表[authorsTableAdapter]右键→添加查询,参照上边

的方法生成DeleteQuery(删除),InsertQuery(增加),UpdateQuery(更新)、

SelectDetail(返回详细结果,使用Select( 返回行 )选项,生成一个只包括一条数据

的数据集) 以及ScalarQuery(返回数据统计).
    以下是生成的SQL语句,需要手工修改成自己需要的代码:
DeleteQuery:DELETE FROM [authors] WHERE ( [au_id] = @Original_au_id )

InsertQuery:INSERT into authors (

au_lname,au_fname,phone,address,city,state,zip,contract ) values (

@au_lname,@au_fname,@phone,@address,@city,@state,@zip,@contract )

UpdateQuery :UPDATE authors set

au_lname=@au_lname,au_fname=@au_fname,phone=@phone,

address=@address,city=@

city,state=@state,zip=@zip,contract=@contract where

au_id=@au_idSelectDetail:SELECT authors.* FROM authors where

au_id=@au_idScalarQuery :SELECT COUNT( * ) FROM authors
    打开Default.aspx,并添加一个GridView控件,并且添加一个ObjectDataSource控

件,配置ObjecctDataSource的数据源,此时我们会发现在配置的时候系统已经认出来

我们刚才建立的强类型DataSet了,[选择业务对象] →

[authorsTableAdapters.authorstableAdapter] →[定义数据方法]分别选择

Select,Update,Insert,Delete的方法,即我们刚才建立的

DeleteQuery,InsertQuery,UpdateQuery,SelectDetail,ScalarQuery和系统生成的

GetDate].此时配置ObejctDataSource就完工了.
    把GridView的DataSourceID设置成ObjectDataSource,此时我们就已经建立好了

完整的一个数据编辑功能.看是不是很简单.
    当然,我们在进行企业开发的时候,更习惯于在后台编辑,现在我就给出在后台进

行手工编辑的代码:
//数据绑定部分if ( !Page.IsPostBack )
{
    authorsTableAdapters.authorsTableAdapter ta = new

authorsTableAdapters.authorsTableAdapter( );
    //authorsTableAdapter就是我们建立的强类型的  
    GridView1.DataSource = ta.GetData( );
    GridView1.DataBind( );
}
//删除数据protected void GridView1_RowDeleting( object sender,

GridViewDeleteEventArgs e )
{
    authorsTableAdapters.authorsTableAdapter ta = new

authorsTableAdapters.authorsTableAdapter( );
    ta.DeleteQuery( GridView1.DataKeys[e.RowIndex].Value );
}
//返回单条数据authorsTableAdapters.authorsTableAdapter ta = new

authorsTableAdapters.authorsTableAdapter( );
DataTable dt = ta.SelectDetail( Request.QueryString["id"].ToString( ) );
if ( dt.Rows.Count > 0 )
Response.Write( dt.Rows[0]["address"].ToString( ) );
//返回数据统计
authorsTableAdapters.authorsTableAdapter ta = new

authorsTableAdapters.authorsTableAdapter( );
Response.Write( ta.ScalarQuery( ).ToString( ) );
    至此,我们不难发现,2005给我们的开发提供了飞跃性的改变.我们可以通过强类

型数据集很方便快速的进行多层构架开发,并且提高开发速度.

来源:十度教育
作者:
关键字:
发表日期:2006-10-2 10:48:42

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:用C#与XML创建动态分层菜单   下一篇:.net延迟加载的一般实现


2009-1-9 20:55:06
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com