0

更新的问题

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

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

无论我尝试什么,我都会不断收到“找不到数据源”异常。

4

4 回答 4

2

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

您将此称为魔术字符串,但我不知道您在想什么其他魔术方法,您的应用程序可以自动知道数据库的 IP 地址、用户名和密码。

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

于 2012-12-28T20:39:18.907 回答
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();
            }
于 2012-12-28T20:44:35.957 回答
1

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

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

于 2012-12-28T22:27:12.097 回答
0

为了上帝的爱...

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

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

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

于 2012-12-28T21:31:15.097 回答