非常直截了当的问题。我正在构建一个从SQL Server 2005实例读取数据的应用程序。我想在我的笔记本电脑上运行一些测试(没有SQL 2005)所以我正在考虑在本地数据库中进行交换以进行测试。
我正在使用VS2008,因此Compact Edition DB似乎是一个自然的选择。我原本希望换掉我的连接字符串,但似乎它只能让我使用SqlCeConnection而不是SqlConnection连接到CE数据库。任何方式,我可以在连接字符串中使用修饰符吗?
答案 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等..)。这样,您每次都需要更改的是经理类的实例化。
这样做的另一个优点是,如果您以后决定完全切换到另一个提供商,则不需要更改代码。