我正在编写一个从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年。
答案 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=.......;
上的参考资料
此外,连接所需的.NET Framework版本是4.02,您可以查看
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\