0

移动 6.1 设备上的 C# WinForms .Net 3.5 到 SQL CE 3.5

我想在我的 Windows Mobile 设备上通过 ActiveSync 连接时从桌面应用程序连接到 SDF 数据库。Visual Studio 允许我创建到我的设备的数据连接。连接测试正常,我可以使用 Visual Studio 查看数据库中的数据。

然后我创建一个表单并尝试填充一个 DataGridView。当我运行程序时,我收到一个错误,指出数据库的路径无效。

我应该如何在连接字符串中指定移动设备路径?

在我的 App.Config 中,我尝试了路径的变体,但它们都不起作用:

connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=\Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=\Program Files\SqlCeViaActiveSync\Orders.sdf"

完整的连接字符串部分如下所示:

<connectionStrings>
    <add name="SqlCeViaActiveSync.Properties.Settings.OrdersConnectionString"
        connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"
        providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>

另外,我确实参考了 Microsoft.SqlServerCe.Client,因为我发现一些文章提到它是必要的。

谁能指出我最近的一些文章/样本或让我知道我做错了什么?

谢谢!

4

1 回答 1

0

我刚刚发现以下工作:

SqlCeConnection conn = new SqlCeConnection(@"Data Source='Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf';");
        conn.Open();
        using (SqlCeTransaction trans = conn.BeginTransaction())
        {
            using (SqlCeCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT [OrderNumber] FROM [Orders];";
                trans.Commit();
                SqlCeDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    this.listBox1.Items.Add((string)dr["OrderNumber"]);
                }

                MessageBox.Show(dr.RecordsAffected.ToString());
            }
        }
        conn.Close();

这不是我想要的,但适用于这个应用程序。

于 2009-10-24T20:14:29.060 回答