2012-11-09 29 views
2

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

但是当评审审查我的代码,他说,数据表是很老土的方式。他说他宁愿使用物体或其他东西,但我不知道。

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

回答

3

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

学习正确的面向对象编程。任何使用数据集的人都非常清楚地表明,他只看到过MS“如何快速创建UI”的例子,而没有学过三方面的面向对象编程实践。

我不会称15年建立的技术“现代”。

例如,你应该知道LINQ。实体框架 - 这两者都是.NET框架的一部分,并且一段时间以来(从4.0开始)。

这不是关于“年龄”,而是关于知道自己在做什么。并阅读文件一次。当一个“年轻的厨师”只知道胡椒他不是一个厨师,他是一个把戏小马。 .NET开发人员不知道从数据库中获取数据的所有方法,而不是.NET开发人员 - 因为他错过了阅读文档ONCE。询问详细信息是可以的 - 但没有听说过实体框架是......好吧,从来没有读过文档的somoene。

再次。 ORM的并不新鲜。他们在.NET 1.0时期存在,他们存在于以前的Visual Basic时代。

+0

感谢家伙..它可以帮助我了解更多.. – lawphotog

2

你的同事很可能也像NHibernate和实体框架的ORM,它提供对数据库的面向对象的抽象精通。

对象关系映射安全的,自动执行大量的“胶水”的任务。这足够体面的例子是数据库关系等

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

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

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

对比这与旨在执行特定的任务专门建造类。

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

很多时候,你会想用你的DataTable填充其他东西。为了正确地做到这一点,你需要检查空值,等等,通常是这样的: -

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

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

大多数情况下,这是人们直接从数据库中提取并在网页上发布的时间。今天,在n层产品之间有几层抽象层,DataTable是一个相当差的替代品,你可以从ORM获得花里胡哨的替代品。

+0

谢谢..你的回答也帮助我更多地了解编程..我只需要选择第一个好的答案.. – lawphotog