Fejl ved indsæt/hent fra access database
Hej,Jeg har en stump kode, hvor jeg først indsætter en række i en tabel i en access database. Umiddelbart efter, vil jeg så hente id'et fra den jeg lige har oprettet (for så at indsætte en ny række i samme tabel men denne gang med det sidst indtastede id).
Først - det er IKKE selve sql statements, der er et problem, det er kørslen af koden, der volder problemer.....
Når jeg forsøger at køre koden med en "Run to curser" og stepper mig igennem, sætter den korrekt ind ny række med eksempelvis id 45, henter rækken med id 45 og laver en ny række, hvor jeg bruger id 45.....
MEN kører jeg koden med F5 (altså uden at steppe), så er det som om den først henter (dermed id 44 og IKKE den jeg skal bruge nemlig 45), indsætter en række og så indsætter en række igen hvor den så bruger id 44......
Min kode:
if (error.SetNewError(companyid, 1, employeeId, product, versioni, patch, Convert.ToInt32(ddlNewErrorPriority.SelectedValue), 0, txtNewErrorHeadline.Text, txtNewErrorMessage.Text, Convert.ToString(DateTime.Now)) == Status.Success)
{
ERSError error2 = new ERSError();
DataTable getLastError = null;
if (error2.GetLastError(companyid, ref getLastError) == Status.Success)
{
int id = Convert.ToInt32(getLastError.Rows[0]["errorCyklusId"]);
lblNewErrorId1.Text = Convert.ToString(id);
Label1.Text = Convert.ToString(id);
ERSError error3 = new ERSError();
if (error3.SetNewError(companyid, 1, employeeId, product, versioni, patch, Convert.ToInt32(ddlNewErrorPriority.SelectedValue), Convert.ToInt32(lblNewErrorId1.Text), txtNewErrorHeadline.Text, txtNewErrorMessage.Text, Convert.ToString(DateTime.Now)) == Status.Success)
{
}
}
}
Altså den korrekte fremgangsmåde (som den burde eksekvere koden i MIN verden) er:
1) if (error.SetNewError(companyid, 1, employeeId, product, versioni, patch, Convert.ToInt32(ddlNewErrorPriority.SelectedValue), 0, txtNewErrorHeadline.Text, txtNewErrorMessage.Text, Convert.ToString(DateTime.Now)) == Status.Success)
2) if (error2.GetLastError(companyid, ref getLastError) == Status.Success)
3) if (error3.SetNewError(companyid, 1, employeeId, product, versioni, patch, Convert.ToInt32(ddlNewErrorPriority.SelectedValue), Convert.ToInt32(lblNewErrorId1.Text), txtNewErrorHeadline.Text, txtNewErrorMessage.Text, Convert.ToString(DateTime.Now)) == Status.Success)
men den tager dem i stedet som:
2
1
3
Nogen der kan fortælle mig, hvorfor den IKKE eksekverer i samme rækkefølge, som når man laver en "Run to curser" og ikke mindst, hvordan jeg kan ændre koden, så den kører det i korrekt rækkefølge?
mvh
simsen :-)