2013-10-03 229 views
2

我正在編寫一個從API獲取數據的Weatherstation。 這工作正常,但我想將它存儲在數據庫中以繪製一個圖形。 但我的代碼似乎不工作。我試着調試它,它在我想要打開數據庫的行上失敗。它貫穿創建數據庫的行。數據庫連接失敗(System.Data.Sqlclient.SqlException)

這些是發生故障的線路:在控制檯

databaseCon = new SqlConnection(@"Data Source= 
(LocalDB)\v10.0;AttachDbFilename=C:\Users\Jeroen 
Laptop\Desktop\Eindopdrachten\WeatherStation\Eindopdracht\ 
Weather.mdf;Integrated Security=True;"); 
databaseCon.Open(); 

錯誤消息:

類型 'System.Data.SqlClient.SqlException' 的第一次機會異常發生在System.Data。 DLL

會發生什麼:

我想從API獲取數據並將其存入數據庫,以製作具有溫度,位置和日期的圖表。爲此,我創建了一個數據庫,並且我想與它連接。這是錯誤發生的地方。我從上面得到錯誤。 當我調試該消息顯示幾次(100左右),並繼續運行,而不填寫數據庫。

我希望這裏有人能給我一些更多的信息,或者可以看到我做錯了什麼。

更新:

我試圖存取權限的數據庫

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: 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: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)

我使用Visual Studio 2010和SQL Server 2008中 2012不被我的編程支持時,下面的消息筆記本電腦。

+1

你可以開始給我們介紹一下錯誤消息的一些信息。 – Steve

+0

定義「失敗」。你有什麼跡象表明它不能按預期工作?是否有錯誤訊息? – David

+1

難道不應該是'數據源=(的LocalDB)\ 11.0; .....'('v11.0',而不是'v10.0')使用 –

回答

0

我的猜測是它可能是某種權限錯誤。

您正在桌面上創建數據庫,我敢打賭SQL服務器沒有該文件夾的權限。

0

連接到的LocalDB需要此連接字符串

自動實例

Server=(localdb)\v11.0;Integrated Security=true; 
        ^^^^^ 

與特定的數據文件

Server=(localdb)\v11.0;Integrated Security=true; AttachDbFileName=.......; 

查看connectionstrings

此外,版本引用所需的NET框架t Ø連接是4.02,你可以檢查

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\ 
+0

我檢查了所有這些,但問題仍然存在。我的整個代碼可能有用嗎? – SetFlame

+0

你有主異常的InnerException領域的東西,有時真正的問題是表示在那裏。我想你已經安裝了SQL Server位,對吧? http://www.kodyaz.com/sql-server-2012/sql-server-2012-localdb-setup.aspx – Steve

+0

我會看這一點。其實,我記得我有其他數據庫的問題,也許我刪除了一些錯誤的文件。我也會尋找這個! – SetFlame

0

它必須是11.0,而不是V10.0,並且在未來還會有V12.0 +,但沒有V10.0。這與Visual Studio 2010或SQL Server 2008無關。LocalDb首先隨SQL Express 2012一起提供,並且是v11.0。 http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

LocalDb也至少需要.NET 4。02,但不幸的是在註冊表中的版本總是v4.0.30319,即使你有較早的.NET http://blogs.msdn.com/b/sqlexpress/archive/2011/10/27/net-framework-4-now-supports-localdb.aspx

如果可能的話,只需升級到.NET 4.5

此問題還存在,如果使用一個名爲實例而不是v11.0,程序或服務作爲不同的用戶運行,並且該用戶實例仍附加到數據庫。不幸的是,數據庫可能需要一段時間才能自動分離。