我得到這個「無法打開用戶默認數據庫。登錄失敗」錯誤。我所做的是使用ORM創建DataContext,在代碼中調用TableExists函數來檢查version_tbl是否存在,如果不存在,則調用腳本來執行exec命令以創建version_tbl。然後創建一個新的dataContext,但是問題出在調用後我在dataContext實體上得到這個錯誤。如果我刪除TableExists調用,那麼dataContext創建就緒,或者在TableExists調用之前移動dataContext創建,但是當它嘗試連接時,在TableExists調用中發生問題。似乎我只能連接一次。無論如何,我可以調用TableExists然後能夠創建dataContext?無法打開用戶默認數據庫。登錄失敗錯誤
下面是我的代碼示例
靜態布爾TableExists(字符串表名) {
using (SqlConnection connection = new SqlConnection("Data Source=localhost\\SQLEXPRESS;Initial Catalog=planning;Integrated Security=True"))
{
string checkTable =
String.Format(
"IF OBJECT_ID('{0}', 'U') IS NOT NULL SELECT 'true' ELSE SELECT 'false'",
tableName);
SqlCommand command = new SqlCommand(checkTable, connection);
command.CommandType = CommandType.Text;
connection.Open();
bool retVal = Convert.ToBoolean(command.ExecuteScalar());
return retVal;
}
}
myFunc()
{
if (!TableExists ("version_tbl"))
{
// call scripts to create version_tbl
}
DataContext ctx = new DataContext();
密切的沒有什麼區別,用同樣的錯誤 System.Data.SqlClient.SqlException被抓獲 消息=「無法打開用戶默認數據庫。登錄失敗。\ r \ n登錄名用戶失敗」 源=」 .NET的SqlClient數據提供者 「 錯誤碼= -2146232060 類= 11 LineNumber上= 65536 總數= 4064 過程= 」「 服務器=」 \\\\。\\管\\ 62547E80-CB39-45 \\ TSQL \\查詢「 State = 1 – queandans 2009-10-27 02:16:00