2009-11-28 2 views

Répondre

0

Pouvez-vous ajouter une clé primaire?

Sans une sorte d'identifiant unique (qui devrait être le PK), il n'y a aucun moyen de savoir quelle ligne mettre à jour.

1

Vous pouvez toujours trouver une ligne à l'aide myTable.Select("myColumn Like 'unique value'");

0

j'ai eu le même problème lorsque j'ai utilisé une base de données tiers. Ils n'ont pas de clés primaires dans leur base de données, mais ils ont une combinaison de champs uniques.

D'abord, créez une datatable et remplissez-la avec le résultat de la requête en utilisant la condition unique.

DataTable dt = new DataTable(); 
OleDbDataAdapter adapter = new OleDbDataAdapter(); 
adapter.SelectCommand = new OleDbCommand(sqlstring, ACCESS_dbConnection); 
adapter.Fill(dt); 

Ensuite, remplacez ds avec vos données mises à jour par colonne.

foreach (DataColumn col in datarow.Columns) 
{ 
    Debug.WriteLine(col.ColumnName); 
    ds.Rows[0][col.ColumnName] = datarow.Rows[0][col.ColumnName]; 
} 

Ensuite, vous pouvez mettre à jour.

OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter); 
adapter.UpdateCommand = cb.GetUpdateCommand(); 
adapter.InsertCommand = cb.GetInsertCommand(); 
adapter.Update(ds); 

Cela fonctionne pour moi.

Ne le faites que si vous êtes sûr qu'il n'y en a qu'une à une seule requête. Si ce n'est pas le cas, vous voudrez peut-être ajouter "if" à la vérification

Questions connexes