1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
private void dataadapterClients_RowUpdated(object sender, OdbcRowUpdatedEventArgs args)
{
if (args.RecordsAffected > 0)
{
if (args.StatementType == StatementType.Insert)
{
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Attibue un numero d'ordre au client nouvellement cree");
OdbcCommand cmdIdentity = new OdbcCommand("SELECT @@IDENTITY", args.Command.Connection);
cmdIdentity.Transaction = Transaction;
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Avant numerotation automatique du client");
int id = (int)(cmdIdentity.ExecuteScalar());
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Client_ID : " + id);
args.Row.Table.Columns["Client_ID"].ReadOnly = false;
args.Row.Table.DataSet.Tables["Commandes"].Columns["Client_ID"].ReadOnly = false;
MessageBox.Show("Stop ??????????????????");
args.Row["Client_ID"] = id;
args.Row.Table.Columns["Client_ID"].ReadOnly = true;
args.Row.Table.DataSet.Tables["Commandes"].Columns["Client_ID"].ReadOnly = true;
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Apres numerotation automatique du client");
}
if (args.StatementType == StatementType.Insert || args.StatementType == StatementType.Update)
{
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Recuperation de l'horodatage de la ligne client. Type d'ordre : " + args.StatementType);
int intCriteria = 0;
if (args.StatementType == StatementType.Insert)
intCriteria = (int)args.Row["Client_ID"];
else
intCriteria = (int)args.Row["Client_ID", DataRowVersion.Original];
OdbcCommand cmdStamp = new OdbcCommand("SELECT Stamp FROM Clients WHERE Client_ID = " + intCriteria, args.Command.Connection);
cmdStamp.Transaction = Transaction;
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Avant ExecuteScalar");
DateTime dteStamp = (DateTime)(cmdStamp.ExecuteScalar()); // DateTime.Now
Console.WriteLine("[DBWpf, ClientsTableAdapter] dataadapterClients_RowUpdated, Horodatage : " + dteStamp);
args.Row.Table.Columns["Stamp"].ReadOnly = false;
args.Row["Stamp"] = dteStamp;
args.Row.Table.Columns["Stamp"].ReadOnly = true; // true
}
}
else
{
// args.Row.RowError = "Conflit d'acces concurrentiel optimiste rencontre"; // Concurrency Violation Encountered
// args.Status = UpdateStatus.SkipCurrentRow;
}
} |
Partager