Question

C # WinForms .Net 3.5 à SQL CE 3.5 sur un périphérique Mobile 6.1

J'aimerais établir une connexion entre une application de bureau et 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 testent bien et je peux afficher les données de la base de données à l’aide de Visual Studio.

Je crée ensuite un formulaire et tente de remplir un DataGridView. Lorsque j'exécute le programme, un message d'erreur indiquant que le chemin d'accès à la base de données n'est pas valide s'affiche.

Comment suis-je censé spécifier le chemin du périphérique mobile dans la chaîne de connexion?

Dans mon App.Config, j'ai essayé des variantes du chemin, mais aucune d'entre elles ne fonctionne:

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>

J'ai également fait référence à Microsoft.SqlServerCe.Client, car j'ai trouvé quelques articles qui mentionnaient qu'il était nécessaire.

Quelqu'un peut-il m'indiquer des articles / exemples récents ou me dire ce que je ne fais pas?

Merci!

Était-ce utile?

La solution

Je viens de constater que les travaux suivants fonctionnent:

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

Ce n'était pas exactement ce que je cherchais mais cela fonctionnera pour cette application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top