2010-04-23 31 views
2

所以我离MVC或ASP.NET的专家非常遥远。我现在只想在C#中创建一些简单的控制器,所以我有以下问题;ASP.NET MVC 2,重新使用SQL连接字符串

现在我有控制器使用的连接字符串,内部控制器本身。当有多个控制器使用相同的字符串时,这是很愚蠢的。我希望能够在一个地方更改连接字符串,并影响所有控制器。

不知道很多关于asp.net或MVC的'm'和'v'部分,什么是最好的(也是最简单的)完成这个任务的方法?

我很感激这方面的任何意见,例子也会很棒。

回答

1

您可以在连接字符串添加到这样的web.config文件:

<configuration> 
    <appSettings> 
    <add key="ConnectionString" 
     value="server=localhost;database=Northwind;uid=sa;password=secret;"/> 
    </appSettings> 
    <system.web> 
    <customErrors mode="Off"/> 
    </system.web> 
</configuration> 

,并用它在你的代码是这样的:

strConnection = ConfigurationSettings.AppSettings("ConnectionString") // <----- 
sqlConn = New SqlConnection(strConnection) 
sqlCmd = New SqlCommand("SELECT * FROM Customers WHERE " & "(CompanyName LIKE 'A%') OR (CompanyName LIKE 'B%')", sqlConn) 

注意到的第一线。这个例子适用于VB,但您应该可以在C#中执行相同的操作。

这个例子取自这个链接http://www.dotnetjohn.com/articles.aspx?articleid=3,但是到处都是它们。

希望这会有所帮助。

+1

真棒,这就是我的回答。谢谢:] – cc0 2010-04-23 23:12:38

+0

只是很高兴帮助:) – 2010-04-23 23:16:46

2

把它放在你的web.config文件,像这样:

<connectionStrings> 
    <add name="ConnectionName" connectionString="TheConnectionString" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

<connectionStrings>仅仅是一个根<configuration>元素的孩子。

然后你可以看它像:

string myConnStr = ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString; 

HTHS, 查尔斯

+0

谢谢,这是一个很好的解释! – cc0 2010-04-23 23:13:13