Je suis (nouveau à et) travailler avec une base de données SQL CE qui sera plus tard connectée à un projet où nous envoyons et recevons des informations à un périphérique sur un SerialPort. Cette base de données va stocker des informations sur chaque partie de la communication. Je suis un peu coincé quand il s'agit de mettre à jour un Dataset et de mettre ces données à jour dans la base de données.SQL CE & Dataset - Ligne n'existe pas
data = new DataSet();
adapter = new SqlCeDataAdapter("SELECT * FROM " + [table_name])
builder = new SqlCeCommandBuilder(adapter);
adapter.Fill(data, [table_name]);
data.Tables[table_name].Rows[identity_value][a_column] = a_column_value;
adapter.Update(data, [table_name]);
Avant exécuter cette méthode, je suis assurer que j'ai un enregistrement de la table à la valeur d'identité 1. Cependant, je reçois un IndexOutOfRangeException There is no row at position 1
avant d'appeler la adapter.Update(). Je suppose que j'ai mal compris comment utiliser et mettre à jour un jeu de données. Aucun conseil?
J'ai essayé d'examiner le jeu de données avant d'essayer de mettre à jour la ligne, mais le débogueur ne semble pas me laisser scruter l'ensemble de données, est-il possible de le faire?
l'utilisation DataSet n'est pas la façon la plus performante pour accéder Compact – ErikEJ
SQL Server Je pense que vous devez appeler builder.GetInsertCommand(), builder.GetUpdateCommand(), builder.GetDeleteComm et(), avant de tenter de mettre à jour l'adaptateur de données. – Derek
Ce n'était pas ma décision de conception cependant que recommanderiez-vous? –