Bonjour Je suis en utilisant le code suivant pour mettre à jour la DGV lors de la validation:violations de concurrence DataGridView
private void propertyInformationDataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (propertyInformationDataGridView.IsCurrentCellDirty && e.ColumnIndex.ToString() != "3")
{
propertyInformationTableAdapter.Update((newCityCollectionDataSet)propertyInformationBindingSource.DataSource);
}
}
Et ce code pour mettre à jour le DGV et transmettre des valeurs à certaines tables:
private void propertyInformationDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex.ToString() == "3")
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)propertyInformationDataGridView.Rows[e.RowIndex].Cells[3];
DataGridViewRow row = propertyInformationDataGridView.Rows[e.RowIndex] as DataGridViewRow;
System.Data.DataRowView SelectedRowView;
newCityCollectionDataSet.PropertyInformationRow SelectedRow;
SelectedRowView = (System.Data.DataRowView)propertyInformationBindingSource.Current;
SelectedRow = (newCityCollectionDataSet.PropertyInformationRow)SelectedRowView.Row;
if (Convert.ToBoolean(checkCell.Value) == false && propertyInformationDataGridView.IsCurrentCellDirty)
{
DataClasses1DataContext dc = new DataClasses1DataContext();
var matchedCaseNumber = (from c in dc.GetTable<PropertyInformation>()
where c.CaseNumberKey == SelectedRow.CaseNumberKey
select c).SingleOrDefault();
DateTime saveNow = DateTime.Now;
reportsSent newReport = new reportsSent();
newReport.CaseNumberKey = SelectedRow.CaseNumberKey;
dc.reportsSents.InsertOnSubmit(newReport);
matchedCaseNumber.DateFinished = saveNow;
dc.SubmitChanges();
}
}
}
Que se passe est quand je clique sur la valeur finie ou cellvalue 3 puis clique sur une cellule différente pour la valeur de la cellule par exemple 0 sur un enregistrement différent Je reçois une erreur. Je comprends pourquoi je reçois l'erreur, mais comment pourrais-je éviter cela? Devrais-je déplacer le code de la validation au clic afin que l'erreur ne se produise pas ou y a-t-il une autre façon de gérer cela? La raison pour laquelle l'erreur se produit est parce que je suis mise à jour avec ceci: dc.SubmitChanges();
puis il met à jour à nouveau ici:
if (propertyInformationDataGridView.IsCurrentCellDirty && e.ColumnIndex.ToString() != "3")
{
propertyInformationTableAdapter.Update((newCityCollectionDataSet)propertyInformationBindingSource.DataSource);
}
Je ne sais pas comment forcer le jeu de données droit d'être mis à jour après une affaire est terminée.
erreur est:
violation Concurrency: UpdateCommand affecté 0 des attendus 1 enregistrements.
Dans le concepteur, il montre ici:
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
public virtual int Update(newCityCollectionDataSet dataSet) {
return this.Adapter.Update(dataSet, "PropertyInformation");
Merci,
Kor
Toujours inclure le libellé du message d'erreur dans votre question. –