Datatable 数据表是老式的吗?

Datatable 数据表是老式的吗?,datatable,dataadapter,sqldataadapter,Datatable,Dataadapter,Sqldataadapter,我是一名年轻的开发人员,并不知道访问数据库和从中获取数据的许多不同方法。我知道的一种方法是使用DataAdapter和SQLcommand以及数据库团队提供的存储过程来连接数据库并将数据填充到DataTable中。然后,我使用datatable进行处理,或者将其绑定到gridview等以进行显示 但当审查员审查我的代码时,他说datatable是一种非常老式的方式。他说他宁愿使用物体或其他东西,但我不知道 那么,有没有更好(或更现代)的方式连接数据库并从中获取数据呢?这是一个一般性的问题,与我的

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

但当审查员审查我的代码时,他说datatable是一种非常老式的方式。他说他宁愿使用物体或其他东西,但我不知道


那么,有没有更好(或更现代)的方式连接数据库并从中获取数据呢?这是一个一般性的问题,与我的程序的实际功能无关。

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

学习正确的面向对象编程。任何使用数据集的人都会发现,他只见过MS“如何使UI快速”的示例,从未学习过trpoper面向对象编程实践

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

例如,您应该了解LINQ。实体框架-两者都是.NET框架的一部分,从4.0开始已有一段时间了

这与“年龄”无关,而是知道你在做什么。阅读文档一次。当一个“年轻厨师”只知道胡椒粉的时候,他不是厨师,他是一只会耍花招的小马。“yount”(不是实习生).NET开发人员,他不知道从数据库中获取数据的所有方法,因此他不是.NET开发人员,因为他错过了一次文档阅读。询问细节是可以的-但没有听说实体框架是。。。好吧,索莫尼从未读过文档


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

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

对象关系映射器安全自动地执行许多“粘合”任务。数据库关系等就是一个很好的例子

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

我仍然在一些非常有限的情况下使用DataTable。我想我主要关心的是:-

  • 非常通用的解决方案。不是特定领域的
将其与旨在执行特定作业的专门构建的类进行对比

  • 大量耦合,大量错误检查,或两者兼而有之
通常,您需要使用数据表来填充其他内容。要正确执行此操作,您需要检查空值等,通常使用以下方法:-

string thing = (row["Thing"] == DBNull.Value ) ? string.Empty : (string)thing;
它繁重、耗时且容易出错


不过,大多数情况下,这是人们直接从数据库中提取数据并在网页上大肆宣扬的时代的产物。如今,n层产品之间存在着多个抽象层,而DataTable是从ORM获得的铃铛和哨子的一个相当糟糕的替代品。

谢谢。。你的回答也帮助我对编程有了更多的了解。。我只需要选择第一个好答案。。