数据库连接失败(System.Data.Sqlclient.SqlException)

时间:2013-10-03 14:52:55

标签: c# sql-server ado.net system.data.sqlite sqlclient

我正在编写一个从API获取数据的Weatherstation。 这工作正常,但我想将它存储在数据库中以绘制图形。 但我的代码似乎不起作用。我尝试调试它,它在我要打开数据库的行上失败了。它贯穿我创建数据库的行。

这些是失败的行:

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.dll中出现'System.Data.SqlClient.SqlException'类型的第一次机会异常

会发生什么:

我想从API中获取数据并将其放入数据库中,以生成包含温度,位置和日期的图表。为此,我创建了一个数据库,我想与它连接。这就是错误发生的地方。我从上面得到了错误。 当我调试该消息显示几次(100左右)并继续运行时,不填充数据库。

我希望这里有人可以给我更多信息,或者看看我做错了什么。

更新

尝试访问数据库时收到以下消息

  

类型'System.Data.SqlClient.SqlException'的未处理异常   发生在System.Data.dll

中      

其他信息:与网络相关或特定于实例的错误   在建立与SQL Server的连接时发生。服务器是   没找到或无法访问。验证实例名称是否为   正确并且SQL Server配置为允许远程连接。   (提供者:SQL网络接口,错误:52 - 无法找到   本地数据库运行时安装。验证SQL Server Express是否正确   正确安装并且本地数据库运行时功能是   启用。)

我将Visual Studio 2010与SQL server 2008一起使用。 我的编程笔记本电脑不支持2012年。

3 个答案:

答案 0 :(得分:1)

必须是v11.0,而不是v10.0,将来会有v12.0 +,但没有v10.0。这与Visual Studio 2010或SQL Server 2008无关.NocalDb首先附带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并且程序或服务作为其他用户运行并且该用户实例仍附加到数据库,则也可能存在此问题。不幸的是,数据库可能需要一段时间才能自动分离。

答案 1 :(得分:0)

我的猜测是它可能是某种权限错误。

您正在桌面上创建数据库,我敢打赌,SQL服务器没有该文件夹的权限。

答案 2 :(得分:0)

连接到LocalDB需要此连接字符串

自动实例

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

使用特定数据文件

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

请参阅connectionstrings

上的参考资料

此外,连接所需的.NET Framework版本是4.02,您可以查看

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