如何在C#web应用程序中连接到数据库 我在C++中工作了四年,突然我被分配了一个任务,开发一个示例Web应用程序,其目的是从一个样例表中获取数据并在网格视图中显示它。 关于示例应用程序:

如何在C#web应用程序中连接到数据库 我在C++中工作了四年,突然我被分配了一个任务,开发一个示例Web应用程序,其目的是从一个样例表中获取数据并在网格视图中显示它。 关于示例应用程序:,c#,asp.net,sql-server,database,C#,Asp.net,Sql Server,Database,该应用程序是在Visual web Developer 2010的框架4.0下使用ASP.net和C#开发的。 后端数据库是在MS SQL Server 2008中开发的 我的做法: 从那时起,我就不熟悉.net世界。所以我在互联网上冲浪,找到了类型化数据集(最简单的方法,即使用向导而不是编码),因此我使用类型数据集进行数据库连接 我的问题: 我因使用类型化数据集而面临许多批评:(.有人说它效率不高,有人说它很难扩展…等等:( 现在我只想问,建立数据库连接的最佳方式是什么(特别是对于大型项目)。

该应用程序是在Visual web Developer 2010的框架4.0下使用ASP.net和C#开发的。 后端数据库是在MS SQL Server 2008中开发的

我的做法: 从那时起,我就不熟悉.net世界。所以我在互联网上冲浪,找到了类型化数据集(最简单的方法,即使用向导而不是编码),因此我使用类型数据集进行数据库连接

我的问题: 我因使用类型化数据集而面临许多批评:(.有人说它效率不高,有人说它很难扩展…等等:( 现在我只想问,建立数据库连接的最佳方式是什么(特别是对于大型项目)。我之所以问这个问题,是因为我对这个领域是一个新手。然而,我从互联网上学习,通过编码找到了另一种方式,即每个事物都有类(数据集、数据表、数据行、连接等).这是更好的方法吗?还是有别的办法。
一些示例代码或web资源指导如何执行此操作会更有帮助

您可以使用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();
}

我将介绍MicrosoftsORM(对象关系映射)工具,称为实体框架。 您几乎可以在项目中添加一个新的实体框架模型,然后可以选择所需的所有表和存储过程,这样就可以通过对象而不是数据集访问数据

如今,数据集在新项目中使用得不多,因为它们很难进行后续更改,而且需要进行很多后续更改,而且人们告诉您的关于它们的内容是正确的,不具有很强的可扩展性

签出下面的实体框架链接


我建议您仔细阅读这些文章,因为它们描述了ASP.NET中数据访问的最佳实践

DataSet、DataTable或SqlDataReader的使用都取决于您的情况。 你需要分析哪些最适合你的情况。

你可以看看


如果你选择类型化数据集,那么它还有其他方法,比如LINQ到SQL,EF

如果你选择类型化数据集,那么你就有点坚持使用一种技术。关注点分离比较困难,因为数据集和它们的表通常被传递到业务逻辑和客户端,而不仅仅是数据访问层

因此,如果您在应用程序中选择类型化数据集,那么可伸缩性肯定是一个问题,因为它不仅仅是简单地交换技术,因为它通常是跨层实现的

其他人则发誓使用像NHibernate这样的技术,这是非常好的


但是,如果它只是一个示例应用程序,您可以使用类型化数据集免费获得。继续并实现它,除非这是一个寿命较长的应用程序,打算进行扩展。

对您来说可能是一个好方法。

您所说的是正确的,并且使用实体框架可以轻松地进行开发。但有时,速度需要提高同样考虑。在这种情况下,我会回到@domanokz提到的
SqlDataReader
。+1nonetheless@Alex你是对的,实体框架可以是一个过程,SqlDataReader很容易实现当您的UI想要快速更新/删除数据时,如果您使用IntIfyPyrTyTrimeC改接口,则使用其他绑定的新技术来绑定N。您可能需要考虑使用<代码>使用(){…}/<代码> < <代码> SqlDataReader >代码>,因为它也实现了<代码> IDISPOSTABLE < /代码>。