2009-10-24 97 views
0

C#WinForms .Net 3.5到移动6.1上的SQL CE 3.5设备如何从桌面应用程序连接到移动设备上的SDF?

我想通过ActiveSync连接从Windows桌面应用程序到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,因为我发现有几篇文章提到它是必要的。

任何人都可以指向我最近的一些文章/样本或让我知道我做错了什么?

谢谢!

回答

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(); 

它不正是我一直在寻找,但会为这个应用程序。

+0

有趣的连接字符串是您的问题的第一次尝试。你确定你没有写错吗? – Craig 2011-03-18 18:30:35

相关问题