在ASP.NET MVC3中建立与数据库的连接

时间:2011-07-05 18:11:06

标签: asp.net-mvc asp.net-mvc-3

我有一个mvc3应用程序,它有自己的数据库。但我的网站需要从另一个使用自己的数据库的程序中获取数据,我还需要运行位于该数据库中的存储过程。
我想知道最好的操作是建立sql连接并运行该存储过程并查询这些数据,还是有更好的方法在mvc3中处理这个问题?

3 个答案:

答案 0 :(得分:5)

在.NET中执行数据库访问的方法有很多种。如果此其他程序没有为您提供强类型API来查询数据库,则可以将普通ADO.NET与SqlConnectionSqlCommand一起使用(其中包括其他内容)到invoke stored procedures)或ORM,如实体框架。

答案 1 :(得分:0)

在ASP.NET MVC中,您应该将数据访问代码放在模型中(即不在视图或控制器中),但除此之外,您可以使用您熟悉的任何数据访问技术。

答案 2 :(得分:0)

正如Darin已经说过,有很多方法可以在.NET中执行数据库访问。这是我使用SqlConnection和SqlCommand的示例。当然这是在假设您连接到SQL Db。

using (SqlConnection con = new SqlConnection(Global.GetConnectionString()))
            {
                con.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = @"SELECT [ID],[suburb],[state],[postcode],[country],[latitude],[longitude]
                                      FROM [suburbGeocodes]
                                     WHERE ID = @ID";
                    //include the ID in the command to make the Load() generic

                    cmd.Parameters.Add(new SqlParameter("@ID", id));

                    using (SqlDataReader drd = cmd.ExecuteReader(System.Data.CommandBehavior.SingleResult))
                    {
                        if (drd.Read())
                        {
                            this.Load(drd);
                        }
                    }
                }
            }

连接字符串位于Web.config文件中。我只是使用我创建的全局对象来形成它。它可以从Web.config文件中读取,如下所示

ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        }

web.config文件中的连接字符串是......

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=datasource;Initial Catalog=databasename;Persist Security Info=True;User ID=user;Password=password" providerName="System.Data.SqlClient" />
  </connectionStrings>