DataTables是老式的吗?

时间:2012-11-09 09:31:56

标签: datatable dataadapter sqldataadapter

我是一名年轻的开发人员,并不知道许多不同的方法来访问数据库并从中获取数据。我知道的一种方法是使用带有SQL命令的DataAdaptor和数据库团队提供的存储过程来连接数据库并将数据填充到DataTable中。然后我使用数据表进行处理,或将其绑定到gridview等以用于显示目的。

但是当审稿人审查我的代码时,他说数据表是非常老式的方式。他说他宁愿使用物品或东西,但我不知道。

那么有更好(或现代)的方式来连接数据库,并从中获取数据吗?这是一个通用的问题,并不应该与我的程序真正的作用有关。

2 个答案:

答案 0 :(得分:3)

在.NET 1.0时代,当Java世界已经使用ORM多年时,它们是一个愚蠢的想法。当ADO(不是ADO.NET)发布并且ORM已经在Java世界中使用时,它们是一个愚蠢的想法,我使用的是Visual Basic(而不是.NET)。

学习正确的OO编程。任何使用数据集的人都表示他只看到了MS“如何快速创建UI”的例子而且还没有学过trpoper面向对象的编程实践。

我不会把15年成熟的技术称为“现代”。

例如,你应该知道LINQ。实体框架 - 两者都是.NET Framework的一部分,现在已经有一段时间了(从4.0开始)。

这不是关于“年龄”,而是知道你做了什么。并阅读文档ONCE。当一个“年轻厨师”只知道胡椒他不是厨师时,他就是一个小伎俩。一个“yount”(不是见习).NET开发人员不知道从atabase中获取数据的所有方法都不是.net开发人员 - 因为他错过了阅读文档ONCE。询问详细信息是可以的 - 但是没有听说过实体框架......好吧,索默从未阅读过文档。

再一次。 ORM不是新的。它们存在于.NET 1.0时代,它们存在于旧的Visual Basic时代。

答案 1 :(得分:2)

您的同事可能精通ORH,如nHibernate和Entity Framework,它们为您的数据库提供了面向对象的抽象。

对象关系映射器安全且自动地执行许多“粘合”任务。足够充分的例子是数据库关系等。

在MVC空间中,呈现给服务器的对象通常没有关于底层数据访问结构的信息。

我仍然在一些非常有限的情况下使用DataTable。我想我关键的问题是: -

  • 非常通用的解决方案。不是特定领域的。

将此与专门针对执行特定工作的专门课程进行对比。

  • 很多耦合,很多错误检查,或两者兼而有之。

通常,您会希望使用DataTable填充其他内容。要正确地执行此操作,您需要检查NULLS等,通常使用以下内容: -

string thing = (row["Thing"] == DBNull.Value ) ? string.Empty : (string)thing;

这是繁重,耗时且容易出错的。

但大多数情况下,这是人们直接从数据库中提取并在网页上抨击它的日子。今天,在n层产品之间有几层抽象,而DataTable是从ORM中获得的花哨的替代品。