程序从点点滴滴做起,生活亦是如此

在实验室一个人待了一天,中午有点犯困。不知道是不是这几天因为那天抽签熬得比较晚还没有调整过来。不过事情还是进行得比较顺利。现在觉得做事情比以前用心多了,平静了不少:)
今天在给李东说程序时候突然想起,强类型化数据集应该好好看看,因为以前很多东西都停留在用的层面上,不曾仔细想过具体是怎么回事。知其然,不知其所以然,现在每天都多少时间花在书上。书到用时方恨少哇。
好了,从MSDN上得到一些比较官方的解释:

数据集可以类型化或非类型化。类型化数据集这样一种数据集,它先从基 DataSet 类派生,然后使用 XML 架构文件(.xsd 文件)中的信息生成新类。架构中的信息(表、列等)被作为一组第一类对象和属性生成并编译为此新数据集类。

对比类型化和非类型化数据集中的数据访问

类型化数据集的类有一个对象模型,在该对象模型中此数据集的表和列第一类对象。例如,如果使用的是类型化数据集,可以使用如下代码引用列:

' Visual Basic
' This accesses the CustomerID column in the first row of 
' the Customers table.
Dim s As String
s = dsCustomersOrders1.Customers(0).CustomerID

// C#
// This accesses the CustomerID column in the first row of 
// the Customers table.
string s;
s = dsCustomersOrders1.Customers[0].CustomerID;

相比较而言,如果使用的是非类型化数据集,等效的代码为:

' Visual Basic
Dim s As String
s = CType(dsCustomersOrders1.Tables("Customers").Rows(0).Item("CustomerID"), String)

// C#
string s = (string) dsCustomersOrders1.Tables["Customers"].Rows[0]["CustomerID"];

类型化访问不但更易于读取,而且完全受 Visual Studio 代码编辑器中智能感知的支持。除了更易于使用外,类型化数据集的语法还在编译时提供类型检查,从而大大降低了为数据集成员赋值时发生错误的可能性。在运行时对类型化数据集中的表和列的访问也略为快一些,因为访问是在编译时确定的,而不是在运行时通过集合确定
尽管类型化数据集有许多优点,但在许多情况下需要使用非类型化数据集。最显而易见的情形是数据集无架构可用。例如,当应用程序正在与返回数据集的组件交互而您事先不知道其结构是哪种时,便会出现这种情况。同样,有些时候使用的数据不具有静态的可预知结构,这种情况下使用类型化数据集是不切实际的做法,因为对于数据结构中的每个更改,您都必须重新生成类型化数据集类。

更常见的是,许多时候可能需要动态创建无可用架构的数据集。这种情况下,数据集只是一种方便的、可用来保留信息的结构(只要数据可以用关系方法表示)。同时,您还可以利用数据集的功能,如序列化传递到另一进程的信息或写出 XML 文件的能力。

对于类型化数据集的好处只知道类型检查,汗~。看来要好好检讨一下:)
举个上面的小例子,说明自己学东西太大而化之。了解的多,深入的少,不仔细。由此延生到生活当中,也需要认真细致的做好一件事情,如果同时做两件事情,会产生死锁,从而恶性循环下去:)。决不能在工作时候偷懒休息,也不要在休息的时候来学习。其结果都一样。

转载于:https://www.cnblogs.com/beyondstorm/archive/2005/12/13/295879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值