problemer med sqlserver-transaction
Jeg skal lave en transaction hvor der sættes en eller flere rækker ind i databasen.Dette sker i en løkke hvor jeg selvfølgelig adder samme parameter en gang pr. række jeg indsætter. Problemet er at sqlserveren brokker sig over at jeg prøver at indsætte samme paramter flere gange...men det er jo netop meningen eftersom der skal indsættes flere rækker....Jeg kan illustrere det med lidt kode...Hvad skal jeg gøre anderledes for at få det til at virke. Mvh. Bumle90
P.S. Herer koden der starte med at lave BeginTransaction(), kører løkken igennem og indsætter x antal rækker og afslutter med en commit();
Men den siger certid addes flere gange...hvilket jo også er korrekt, men hvorfor må den ikke det?
System.Data.SqlClient.SqlTransaction trans=Conn2.BeginTransaction();
comm2.Transaction=trans;
try
{
while(enumerator.MoveNext())
{
object[] temp=(object[])confirmFieldCollection[enumerator.Current];
if(((TextBox)temp[0]).Text.Equals(""))
{
((RegularExpressionValidator)temp[1]).IsValid=false;
throw new Exception("datofelt må ikke være tomt");
}
comm2.Parameters.Add("@certid",System.Data.OleDb.OleDbType.VarChar);
comm2.Parameters["@certid"].Value=Request["certID"];
comm2.Parameters.Add("@forlaengperiode",System.Data.OleDb.OleDbType.Integer);
comm2.Parameters["@forlaengperiode"].Value=(int)enumerator.Current;
comm2.Parameters.Add("@confirmDate",System.Data.OleDb.OleDbType.Date);
comm2.Parameters["@confirmDate"].Value=((TextBox)temp[0]).Text;
comm2.Parameters.Add("@oprettetAf",System.Data.OleDb.OleDbType.VarChar);
comm2.Parameters["@oprettetAf"].Value=Session["UserID"];
comm2.ExecuteNonQuery();
}
trans.Commit();
