我从事过去四年的C ++工作,突然之间我被分配了一个任务来开发一个示例Web应用程序,其目的是从示例表中获取数据并在网格视图中显示它。
该应用程序是在Visual Web Developer 2010下的Framework 4.0中开发的,使用带有C#的ASP.net。 后端数据库是在MS SQL Server 2008中开发的
因为,我是.net世界的新手。所以我通过互联网浏览并找到了类型化的数据集(最简单的方法,即使用向导而不是编码),因此我使用类型数据集进行数据库连接。
我因使用打字数据集而面临很多批评:(。有人说它不高效,有人说它更难扩展......等等:( 现在我只想问一下建立数据库连接的最佳方法是什么(特别是对于大型项目)。我只是问这个,因为我是这个领域的新手。然而,我从互联网上学习,并通过编码找到另一种方式,即存在每个事物的类(DataSet,DataTable,DataRow,Connection等)。这是更好的方式吗?还是存在其他一些东西。 一些示例代码或指导如何执行此操作的Web资源将更有帮助
答案 0 :(得分:6)
我会看一下名为Entity Framework的微软ORM(Object Realtionship Mapping)工具。 您几乎在项目中添加了一个新的实体框架模型,然后您可以选择所需的所有表和存储过程,然后通过对象而不是数据集为您提供访问数据的可访问性。
数据集在新项目中的使用时间并不多,因为它们难以改变,并且需要进行许多更改才能实现,以及人们一直在告诉你的是正确的具有很强的可扩展性。
查看下面的链接,了解实体框架。
答案 1 :(得分:3)
您可以使用SqlDataReader,这是在.NET中检索数据的最快方法。
//ensures the SQLconnection will be closed...
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand("select * from MyTable", connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Reads data
while (reader.Read())
{
Response.Write(String.Format("{0}, {1}",
reader[0], reader[1]));
}
// Close dataReader after use...
reader.Close();
}
答案 2 :(得分:1)
我建议您阅读这些文章,因为它们描述了ASP.NET中数据访问的最佳实践。
http://msdn.microsoft.com/en-us/library/ms971481.aspx
http://msdn.microsoft.com/en-us/library/ee817654.aspx
使用DataSet,DataTable或SqlDataReader,都取决于您的情况。 您需要分析哪种情况最适合您的情况。
答案 3 :(得分:1)
您可以查看this。
它还有其他方法,如LINQ TO SQL,EF
答案 4 :(得分:1)
如果选择类型化数据集,则可以选择一种技术。由于数据集及其表通常会传递给业务逻辑和客户端,而不仅仅是数据访问层,因此更难遵循Separation Of Concerns。
因此,如果您在应用程序中选择类型化数据集,可扩展性肯定是一个问题,因为它不仅如此简单地交换技术,因为它通常跨层和层实现
其他人则对NHibernate这样的技术发誓,这非常好。
但是,如果它只是一个示例应用程序,您可以使用类型化数据集免费获得。继续实施它,除非这应该是一个更长寿的应用程序,打算扩展
答案 5 :(得分:1)
可能Data Abstract可能是您的好方法