2009-10-24 4 views
0

C# .NET WinForms 3.5 à SQL CE 3.5 sur Mobile 6.1 DispositifComment me connecter à SDF sur un appareil mobile à partir d'une application de bureau?

Je voudrais faire une connexion à partir d'une application de bureau à une base de données SDF sur mon appareil Windows Mobile alors qu'il est connecté via ActiveSync. Visual Studio me permet de créer une connexion de données à mon appareil. Les connexions tests OK et je peux afficher les données dans la base de données à l'aide de Visual Studio. Je crée ensuite un formulaire et essaie de remplir un DataGridView. Lorsque j'exécute le programme, j'obtiens une erreur indiquant que le chemin d'accès à la base de données n'est pas valide.

Comment suis-je supposé spécifier le chemin d'accès du périphérique mobile dans la chaîne de connexion?

Dans mon App.Config, j'ai essayé des variations sur le chemin, mais aucun d'entre eux travaillent:

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" 

La section de chaîne de connexion complète ressemble à ceci:

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

En outre, J'ai fait une référence à Microsoft.SqlServerCe.Client, comme j'ai trouvé quelques articles qui ont mentionné que c'était nécessaire.

Quelqu'un peut-il me diriger vers des articles/échantillons récents ou me laisser savoir ce que je fais mal?

Merci!

Répondre

0

Je viens de découvrir que les travaux suivants:

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

Il n'a pas été exactement ce que je cherchais, mais travailleront pour cette application.

+0

L'intérêt de votre chaîne de connexion est la première tentative de votre question. Es-tu sûr que tu ne l'as pas mal écrit? – Craig

Questions connexes