我在嘗試在LINQ to SQL中使用Connection String Builders (ADO.NET)時遇到一些困難。讓我告訴你們我想要做的事:如何讓LINQ to SQL使用正在運行時修改的連接字符串?
的的app.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="LoremIpsum"
connectionString="Data Source=SomeServer;Initial Catalog=SomeDB;User ID=joe;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
和形式的一個片段:
ConnectionStringSettings settings =
ConfigurationManager.ConnectionStrings["LoremIpsum"];
if (null != settings)
{
string connection = settings.ConnectionString;
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connection);
// passwordTextBox being the control where joe the user actually
// enters his credentials
builder.Password = passwordTextBox.Text;
}
LINQTOSQLDataClassDataContext db = new LINQTOSQLDataClassDataContext();
// finally some rather anecdotic LINQ sentence here:
var foo = db.Table.Single(bar => bar.Table == whatever);
O n個另一方面檢查即時窗口:
?builder.ConnectionString
"Data Source=SomeServer;Initial Catalog=SomeDB;User ID=joe;Password=swordfish"
我總是得到一個例外:用戶登錄失敗「喬」。有任何想法嗎?非常感謝。
您是否缺少實際使用新連接字符串的代碼? 此外,爲什麼這是一個維基? – 2009-06-19 18:47:06
這不應該是一個社區維基。 – jason 2009-06-19 19:01:27
同意...完美的問題。 – Kev 2009-06-19 19:03:10