【问题标题】:Connection string with an SQL Server CE database与 SQL Server CE 数据库的连接字符串
【发布时间】:2011-07-19 08:13:50
【问题描述】:

我正在尝试与 Windows CE 5.0 应用程序中的数据库建立连接,并且我正在使用 Compact Framework 2.0

数据库位于项目文件夹内:

C:\Documents and Settings\softdil\My Documents\Visual Studio 2008\Projects\Datalogic\Datalogic

这些是我用来连接和打开数据库的行:

SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = "Data Source = Datalogic.sdf;";
conn.Open();

这给了我一个漂亮的“找不到数据库文件”错误消息。

我也尝试使用绝对 uri,结果相同:

conn.ConnectionString = "Data Source = C:\\Documents and Settings\\softdil\\My Documents\\Visual Studio 2008\\Projects\\Datalogic\\Datalogic;";

我在这里做错了什么?

可能与移动设备中正在调试(执行)的应用程序有关?

我真的不这么认为,因为加载应用程序时数据库会工作,这意味着它与列表框相关联并从数据库中正确加载数据。

【问题讨论】:

    标签: c# visual-studio-2008 windows-ce sql-server-ce connection-string


    【解决方案1】:

    在 Win CE 应用程序中,我们使用以下命令获取执行文件的完整路径:

    string StartupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
    

    使用StartupPath,您可以将您的数据库名称添加到该路径并将其添加到连接字符串:

    string datalogicFilePath = Path.Combine(StartupPath, "Datalogic.sdf");
    string connectionString = string.Format("DataSource={0}", datalogicFilePath);
    

    【讨论】:

      【解决方案2】:

      你必须让它适用于 WinCE,我认为你的目标上没有 C:\\Documents and Settings\\

      我真的不这么认为,因为数据库在 ...

      查看您的 App.Config,也许您已经有一个连接字符串?

      【讨论】:

      • 如果我没有手动创建 app.config,我有吗?我没有在我的解决方案资源管理器中看到它。
      • 不,我忘记了,但 CE 不使用它们。不过,在您的问题中,您说您有数据,那么问题出在哪里/哪里?
      • 问题是我试图连接到我计算机中的数据库,但它正在 Windows CE 终端中搜索,这就是它没有找到的原因。反正现在已经修好了。
      【解决方案3】:

      这是我修复它的方法,以防万一有人遇到同样的问题。

      当您在 Visual Studio 中将应用程序执行到 Windows CE 终端设备中时,该应用程序会被复制到那里,数据库也会被复制。因此,连接字符串必须使用与终端相关的 uri,而不是相对于您计算机中的路径。

      【讨论】:

        【解决方案4】:

        在 Data Source 属性中给出 DB 文件的路径,并在 App.Config 文件中添加 providerName

        <add name="Keyname" connectionString="Data Source=DBPath\Database1.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-24
          • 1970-01-01
          • 1970-01-01
          • 2011-02-24
          • 1970-01-01
          相关资源
          最近更新 更多