如何让我的C#应用​​程序可以访问SqlServerCe?

问题描述:

我只是在玩C#2010 Express中的数据库,并在输入'using System.Data'。自动完成的东西向我展示了System.Data中的SqlServerCe作为选项。不知道我做了什么,但是当我做了一个新的应用程序,并添加'使用System.Data.SqlServerCe'行''我有一个“SqlServerCe不存在”的错误。我尝试添加一些引用,但仍然无效。其实我一直在试图做的是连接到一些,任何数据库,但我仍然不能。我发现的所有样本似乎都假设了一些我不知道的东西。我一直在尝试通过将ConnectionString设置为我能想象的所有内容来连接SqlConnection,但是我一直在收到错误。我已经安装了SQL Server精简版,我想我也有SQL Server(普通版?)。请我绝望!我想要的只是非常非常简单。我想拥有一个数据表,我不关心我在哪里或如何存储它,因为唯一使用它的程序就是我的程序,并且能够对其执行SQL查询。事实上,我甚至不需要在程序关闭后保存它。如果我可以对它们执行SQL查询,我只需要使用DataTable或者甚至是2d数组。如果你能给我一个样品会很好。如何让我的C#应用​​程序可以访问SqlServerCe?

如果您使用该using语句时出现错误,那么您需要添加对该程序集的引用。

在我的XP盒,该位置是:

c:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\ 

看到你正在使用VS2010,只是在目录名4.0替换3.5

+1

它实际上是3.5,因为是服务器版本,而不是.net版本。 – Juan 2010-07-29 08:52:09

SqlServerCe是SQL Server Compact Edition的命名空间。你需要有这个安装:

http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx

然后,您可以使用SqlCeConnectionSqlCeCommand等对象。

这是一个基于文件的数据库系统,设计为超轻量级。

如果您还不想进入数据库,只需使用System.Data中的DataTable类型。如果您的DataTable位于DataSet之内,那么您可以选择将其序列化为XML。

+0

我可以在DataTable中执行SQL查询吗? – Juan 2010-07-29 08:31:30

+0

你可以做基本的选择。说实话,你可能想看看LINQ。 – 2010-07-29 09:14:28

让我们暂且坚持使用SQL Server Express Edition。如果你认为你的连接字符串有问题,试试这个技巧。

在桌面上创建一个文件并将其命名为something.udl。打开它并尝试不同的设置,直到成功连接到数据库实例。然后按确定并在记事本中打开文件。在那里你会找到正确的连接字符串,只是摆脱Provider属性,你不需要它。

但是,如果您没有成功连接使用.udl文件,则表明您的数据库安装有问题,并且您将知道下一步该怎么做。