如何在连接字符串中指定数据源?

时间:2012-12-28 20:31:46

标签: asp.net-mvc database web-config

更新了问题

如何为本地MSSQL服务器指定数据源?

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(localhost)\SQLEXPRESS;Initial Catalog=bladb;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>

无论我尝试什么,我都会收到“未找到数据源”的例外情况。

4 个答案:

答案 0 :(得分:2)

是的。您的应用程序需要知道数据库的位置,用户名和密码以进行身份​​验证。

你称这是一个神奇的字符串,但我不知道你在想什么其他魔术方法你的应用程序可以自动知道数据库的IP地址,用户名和密码。

大多数情况下,当你设置数据库时,他们会为你创建这个连接字符串,这样你就可以复制并粘贴它。这只是一次性的事情,所以它不应该是太大的交易。

答案 1 :(得分:1)

如果您将web.config中的连接字符串部分定义为

<connectionStrings configSource="connections.config"/>

它将指向一个单独的配置文件,只包含连接字符串。

然后,您可以通过以下代码在代码中添加连接字符串。 请注意,这样做的好处是不必重新启动网站。快乐的日子......

 using (StreamWriter writer = File.CreateText(@"c:\code\AVIVA_site\connections.config"))
            {
                writer.WriteLine("<connectionStrings>");
                for (int i = 0; name.Length > i; i++)
                {
                    writer.WriteLine("<add name=\"{0}\" connectionString=\"{1}\" providerName=\"{2}\" />", name[i], conString[i], provider[i]);
                }
                writer.WriteLine("</connectionStrings>");
                writer.Close();
            }

答案 2 :(得分:1)

你没有在localhost周围加上括号;它只适用于(local)(LocalDb)\v11.0。对于localhost,对于默认的,未命名的本地数据库(如果存在,不一定是),则为DataSource=localhost;对于SQL-Server Express的默认命名安装,则为DataSource=localhost\SQLExpress

有关详细信息,请参阅http://www.connectionstrings.com/

答案 3 :(得分:0)

为了上帝的爱......

if (!WebSecurity.Initialized)
{
    WebSecurity.InitializeDatabaseConnection(
        "DefaultConnection",
        "Users",
        "UserId",
        "UserName",
        true);
}

我没有添加“DefaultConnection”,而是添加了Configuration.ConnectionStrings [“DefaultConnection”]。

问题不在于web.config中的连接字符串,而是在初始化数据库调用...