【问题标题】:Make connection to database in ASP.NET MVC3在 ASP.NET MVC3 中建立数据库连接
【发布时间】:2013-06-15 21:31:40
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    在 .NET 中执行数据库访问的方法有很多种。如果此其他程序没有为您提供强类型 API 来查询数据库,您可以使用带有 SqlConnectionSqlCommand 的普通 ADO.NET(其中允许您使用 invoke stored procedures ) 或诸如实体框架之类的 ORM。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        正如 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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-18
          • 2022-01-25
          • 1970-01-01
          • 2020-11-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多