使用SQLConnection连接到SQL CE db

时间:2009-04-27 11:32:54

标签: c# sql-server-ce connection-string

非常直截了当的问题。我正在构建一个从SQL Server 2005实例读取数据的应用程序。我想在我的笔记本电脑上运行一些测试(没有SQL 2005)所以我正在考虑在本地数据库中进行交换以进行测试。

我正在使用VS2008,因此Compact Edition DB似乎是一个自然的选择。我原本希望换掉我的连接字符串,但似乎它只能让我使用SqlCeConnection而不是SqlConnection连接到CE数据库。任何方式,我可以在连接字符串中使用修饰符吗?

3 个答案:

答案 0 :(得分:7)

通过仅修改配置参数,实际上很可能只使用SQL CE而不是完整的SQL Server:更改连接字符串并尽可能使用IDbXXX系列接口而不是特定于平台的SqlXXX和{ {1}}个。请参阅DbProviderFactories

但请注意,这两个平台的SQL方言存在差异。

答案 1 :(得分:4)

是的,您可以通过引用基类来使用SQL Compact和/或SQL Server。例如:

IDbConnection Connection;

if (Compact)
    Connection = new SqlCeConnection();
else
    Connection = new SqlConnection();

连接字符串需要指向SQL Compact的数据文件,例如:"Data Source=urData.sdf;Persist Security Info=False;"。更多examples here

此链接将解释differences there are between SQL Server and SQL Compact的内容,因为它不相同。

答案 2 :(得分:1)

DB中所需的所有SQL相关对象都从基础抽象Db ...继承(即DbConnection,DbDataAdapter等...)。因此,您可以编写某种类型的DatabaseManager类,在实例化时需要知道您是在处理Sql还是Sql Ce。然后,从那时起,你只处理基类对象(DbConnection等..)。这样,您每次都需要更改的是经理类的实例化。

这样做的另一个优点是,如果您以后决定完全切换到另一个提供商,则不需要更改代码。