Mettre à jour / insérer dans une table à l’aide de SQLCeResultSet

J’ai une firebase database SQL Compact Edition que je mets à jour périodiquement (via des services Web).

La partie où j’écris dans la firebase database prend trop de temps. Je le fais actuellement avec Linq to Datasets (comme on le voit dans cette question ). J’ai entendu dire que si je le fais avec SQLCeResultSet, cela fonctionnera plus rapidement.

Donc, étant donné que j’ai un tableau comme celui-ci:

 tblClient
    + - CLIENT_ID {Identifiant unique} (clé primaire)
    + - CLIENT_NAME {varchar (100)}
    + - CLIENT_ACTIVE {bit} 

Et je l’ai dans l’object que je reçois de mes services Web qui ressemblent à ceci:

class Client { public Guid ClientID { get; set; } public Ssortingng ClientName { get; set; } public bool Active { get; set; } } 

Comment pourrais-je obtenir 100 objects clients dans la firebase database?

Mise à jour des lignes existantes et insertion de lignes qui ne figurent pas déjà dans la firebase database (déterminée par la clé primaire)?

Tout exemple de code serait génial. J’ai un SqlCeConnection , mais rien d’autre.

Merci pour toute aide!

Ça va ressembler à quelque chose comme ça:

( Édité pour insertion ou mise à jour )

 void Foo(SqlCeConnection connection) { using (var cmd = new SqlCeCommand()) { cmd.CommandType = CommandType.TableDirect; cmd.CommandText = "MyTableName"; cmd.Connection = connection; cmd.IndexName = "PrimakryKeyIndexName"; using (var result = cmd.ExecuteResultSet( ResultSetOptions.Scrollable | ResultSetOptions.Updatable)) { int pkValue = 100; // set this, obviously if (result.Seek(DbSeekOptions.FirstEqual, pkValue)) { // row exists, need to update result.Read(); // set values result.SetInt32(0, 1); // etc. result.Update(); } else { // row doesn't exist, insert var record = result.CreateRecord(); // set values record.SetInt32(0, 1); // etc. result.Insert(record); } } } }