2011-07-05 34 views
0

我有一個mvc3應用程序,它有自己的數據庫。但我的網站需要從另一個使用自己的數據庫的程序獲取數據,而且我需要運行位於該數據庫中的存儲過程。
我想知道的是,最好的操作是使sql連接並運行該存儲過程並對這些數據進行查詢,或者有更好的方法來處理mvc3中的這個問題?在ASP.NET MVC3中建立數據庫連接

回答

5

有很多方法可以在.NET中執行數據庫訪問。如果這個其他程序沒有爲您提供一個強類型的API來查詢數據庫,您可以使用普通的ADO.NET與SqlConnectionSqlCommand(其中允許您可以invoke stored procedures)或ORM(如Entity Framework)。

0

在ASP.NET MVC中,您應該將數據訪問代碼放入模型中(即不在您的視圖或控制器中),但除此之外您可以使用任何您喜歡的數據訪問技術。

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>