4

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

这些是失败的行:

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.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常

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

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

4

3 回答 3

1

一定是v11.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 并且程序或服务作为不同的用户运行并且该用户实例仍附加到数据库,则也可能存在此问题。不幸的是,数据库可能需要一段时间才能自动分离。

于 2014-01-27T18:46:57.487 回答
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\
于 2013-10-03T15:05:07.603 回答
0

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

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

于 2013-10-03T14:56:31.177 回答