如何将Ado.Net数据库连接到ASP.Net MVC 5

3

我是ASP.Net MVC 5的新手,在之前使用ASP.Net Webforms和Ado.Net数据库连接创建过两个应用程序。

我看到很多文章解释如何在ASP.Net MVC中使用Ado.Net连接,但所有教程都使用Entity Framework。有没有仅连接Ado.Net的方法?

在我的WebForm应用程序中,我一直在使用这个连接代码:

connectionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
sql = "SQL Statement";
cnn = new SqlConnection(connectionString);
try
{
    cnn.Open();
    cmd = new SqlCommand(sql, cnn);
    cmd.ExecuteNonQuery();
    cmd.Dispose();
    cnn.Close();
}

这个能在ASP .Net MVC5中使用吗?

我尝试了一下,但是出现了错误:

Cannot open database "online_recharge" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\DefaultAppPool'.

这是我尝试使用的代码:
public ActionResult Add_Balance()
{
    string record;

    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
    {
        sqlConnection.Open();
        SqlCommand sqlCmd = new SqlCommand("Select * from COMMISSION_PACKAGE",sqlConnection);
        SqlDataReader reader = sqlCmd.ExecuteReader();
        record = reader["PKG_NM"].ToString();
        sqlConnection.Close();
    }

    ViewBag.Demo = record;
    return View();
}

这在MVC5应用程序中应该可以正常工作。如果你做得更多,EF会使它更容易和更清晰。 - Pawel
1个回答

4
“没什么阻止你在MVC中使用ADO.NET。Entity Framework是一种非常流行的ORM,设置非常简单,因此人们喜欢在教程中使用它。但是,如果你需要更自定义/可控的访问数据的方式,仍然可以使用ADO.NET。

只是一个小技巧-不要将连接存储在代码中,这被视为不良实践。如果数据库移动到另一个服务器,您需要更改代码并重新编译整个应用程序。您应该将连接字符串存储在* .config文件中:”
  <connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"/>
  </connectionStrings>

并且您可以像这样从您的代码中访问它:
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

谢谢,但是当我创建SqlConnection类的对象时,它会出现错误,我该如何使用SqlConnectionsqlCommand等。 - Manish Tiwari
你需要添加 "using System.Data.SqlClient;" 来使用 SqlConnection 类。 - Denys Wessels
我已经尝试了,但现在出现了这个错误:无法打开数据库,我在上面提到了我编写的代码,请检查一下。 - Manish Tiwari
1
创建一个有效的连接字符串。您的连接字符串似乎不正确。"Data Source=ServerName;Initial Catalog=DatabaseName;" 应该被替换为有效的服务器名称和数据库名称。 - Denys Wessels

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接