如何在C#Web应用程序中连接到数据库

时间:2011-07-06 06:06:45

标签: c# asp.net sql-server database

我从事过去四年的C ++工作,突然之间我被分配了一个任务来开发一个示例Web应用程序,其目的是从示例表中获取数据并在网格视图中显示它。

关于样本申请:

该应用程序是在Visual Web Developer 2010下的Framework 4.0中开发的,使用带有C#的ASP.net。 后端数据库是在MS SQL Server 2008中开发的

我的方法:

因为,我是.net世界的新手。所以我通过互联网浏览并找到了类型化的数据集(最简单的方法,即使用向导而不是编码),因此我使用类型数据集进行数据库连接。

我的问题:

我因使用打字数据集而面临很多批评:(。有人说它不高效,有人说它更难扩展......等等:( 现在我只想问一下建立数据库连接的最佳方法是什么(特别是对于大型项目)。我只是问这个,因为我是这个领域的新手。然而,我从互联网上学习,并通过编码找到另一种方式,即存在每个事物的类(DataSet,DataTable,DataRow,Connection等)。这是更好的方式吗?还是存在其他一些东西。 一些示例代码或指导如何执行此操作的Web资源将更有帮助

6 个答案:

答案 0 :(得分:6)

我会看一下名为Entity Framework的微软ORM(Object Realtionship Mapping)工具。 您几乎在项目中添加了一个新的实体框架模型,然后您可以选择所需的所有表和存储过程,然后通过对象而不是数据集为您提供访问数据的可访问性。

数据集在新项目中的使用时间并不多,因为它们难以改变,并且需要进行许多更改才能实现,以及人们一直在告诉你的是正确的具有很强的可扩展性。

查看下面的链接,了解实体框架。

Entity Framework Tutorial

答案 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可能是您的好方法