提供程序:System.Data.SqlServerCe.3.5未安装

发布于 2024-10-14 12:15:34 字数 677 浏览 1 评论 0原文

您好,我正在尝试将 LINQ 与 SQL Server CE 一起使用。我使用 SqlMetal 生成了 dmbl 文件,将其添加到项目中,还添加了对程序集 System.Data.SqlServerCe.dll 的

引用 我的应用程序是基于 .NET4.0 的 WPF,并构建为 x86 。

我的 PC 上安装了 SQL Server CE。

我尝试了以下代码:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var dataContext = new Spiri_SQL_CE_DB(connStr);
var testNicks = dataContext.TestNick;

但我收到此错误:

无法打开“C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger_Project\Pokec_Messenger\DB_TEST\Spiri_SQL_CE_DB.sdf”。未安装提供程序“System.Data.SqlServerCe.3.5”。

我缺少什么?对某些程序集或其他内容的引用?

如果我在 .NET3.5 上重新定位应用程序,效果很好!

Hi I am trying to use LINQ with SQL Server CE. I generated the dmbl file with SqlMetal, added it to the project, and also added a reference to assembly System.Data.SqlServerCe.dll

My app is WPF based on .NET4.0 and is built as x86.

On my PC SQL Server CE is installed.

I tried the following code:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var dataContext = new Spiri_SQL_CE_DB(connStr);
var testNicks = dataContext.TestNick;

But I get this error:

Cannot open 'C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger_Project\Pokec_Messenger\DB_TEST\Spiri_SQL_CE_DB.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed.

What am I missing? A reference to some assembly, or something else?

IF I RETARGET APP ON .NET3.5 IT WORKS GOOD !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

画中仙 2024-10-21 12:15:34

您需要 Microsoft SQL Server Compact 3.5,请参阅此处获取下载链接:http://www.microsoft。 com/sqlserver/2005/en/us/compact.aspx

通常,此数据库仅适用于 x-copy 部署,因此一旦将其安装到开发计算机上,您就可以将其复制到工作环境中目录。

You need Microsoft SQL Server Compact 3.5, see here for download links: http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx

Usually, this database just works with x-copy deployment, so once you've installed it on your dev machine, you can just copy it over your work environment directory.

耶耶耶 2024-10-21 12:15:34

这个解决方案对我来说效果很好,您所需要的只是传递 SQLCE Con​​nection 对象而不是连接字符串:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var conn = new System.Data.SqlServerCe.SqlCeConnection(connStr);
var dataContext = new Spiri_SQL_CE_DB(conn);
var testNicks = dataContext.TestNick;

This solution worked for me just fine, all you need is to pass a SQLCE Connection object instead of connecion string:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var conn = new System.Data.SqlServerCe.SqlCeConnection(connStr);
var dataContext = new Spiri_SQL_CE_DB(conn);
var testNicks = dataContext.TestNick;
情释 2024-10-21 12:15:34

如果您在 64 位 Windows 上运行该应用程序。除了安装 Microsoft SQL Server Compact 3.5 之外,您必须仅通过在项目属性内的构建配置中将平台目标更改为 x86 来强制应用程序为 x86 CPU。

If you are running the app on a 64 bit windows. Except for installing Microsoft SQL Server Compact 3.5, you have to force the app to be x86 CPU only by change the platform target to x86 in build configuration which is inside the property of the project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文