2011-08-02 26 views
0

我正在使用LINQ to SQL與Microsoft SQL 服務器數據庫文件(SqlClient)作爲數據源。 db文件是在添加連接(Database Explorer - > Add Connection)時由Visual Studio 2010創建的。 使用這種方法,我無法創建一個數據庫與SQL身份驗證,所以我使用Windows身份驗證。無法連接到附加的SQL數據庫

編輯:請注意,它不是連接到數據庫,它是到數據庫文件的連接。

1)是否可以使用sql身份驗證創建數據庫文件? (我認爲這是問題的根源)。

2)連接在我的電腦下在不同的帳號下工作正常。但是,在其他計算機上運行該版本會導致拋出異常。

異常詳細信息:

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

我已經試過手動設置數據庫路徑,但我想這不是問題。

我在做什麼錯?

EDIT2:我使用的連接字符串:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\OperatorResults.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True" 
+0

AFAIK SqlClient不直接訪問SQL Server文件!所以是的你運行SQL Server等 – Yahia

+0

我希望能達到類似於使用sqllite數據庫的結果。 我擁有的SQL服務器是與Visual Studio一起安裝的。 – grrawr

+0

這是不可能的 - SQLLite是一個「獨立的數據庫」 - 客戶端訪問文件 - 但SQL Server是真的不同,因爲名稱表示它是一個SERVER數據庫,需要通過服務器進程訪問......出了什麼問題用你有的SQLLite解決方案? – Yahia

回答

0

首先,如何在SQL Server的安裝?僅限Windows身份驗證或混合模式身份驗證。如果只是Windows身份驗證,可以解釋您無法使用SQL Server身份驗證的原因。如果啓用混合模式身份驗證,則需要具有sysadmin或CREATE DATABASE權限的帳戶。

至於你的第二個問題,你是否修改連接字符串以匹配另一臺機器的連接配置?如果沒有,嘗試這樣做。從上面的例外看來,您的連接字符串連接到錯誤的服務器或服務器實例未運行。

+0

我沒有安裝MS SQL服務器,我希望它是類似sqllite的東西。 – grrawr

+0

如果您有可以附加到SQL Server Express的獨立文件,那麼您需要在發行版計算機上安裝SQL Server Express。你能編輯你的問題併發布你的連接字符串嗎? –

+0

在這裏:) – grrawr

0

你想Microsoft SQL Server Express

它允許基於文件的連接。

+0

這正是我正在使用的。 – grrawr

+0

@grrawr檢查express是否安裝在目標機器上的一件事。我相信它是一個不同的連接提供商。只是一個想法。 –