Sprememba vrednosti polja v tabeli

foreach (Dataset.TableRow tblRow in dataset.Table.Rows)
{
   if (tblRow .IDTable == tempID)
  {                                                  
     tblRow .IsPrinted = true;
     tblRow .IsPrinted = true;
     break;
  }
}

 

Če je koda spisana kot je prikazano zgoraj, potem se vrednost polja IsPrinted spremeni.

V primeru, da pa polja ne nastavim 2x na true, pa se vrednost ne spremeni. Zakaj?

Ima kdo kakšno pametno idejo ?

Avtor: Mitja, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

bojanv
bojanv - sreda, 11. avgust 2010

aaaa, ok..probaj tole. Odpri XSD, klikni na IsPrinted pa nastavi default value na false (domnevam, da imaš true/false vrednosti). Privzeta vrednost za fielde je DBNull, kjer se zgodi exception, ko hočeš dostopati do vrednosti polja.

Mitja
Mitja - sreda, 11. avgust 2010

RowState : modified v polju IsPrinted pa piše : 'commRow.IsPrinted' threw an exception of type 'System.Data.StrongTypingException'

bojanv
bojanv - torek, 10. avgust 2010

V kakšnih primerih pa se ti to pojavi? Sem preizkusil podoben primer (na voljo tukaj), vendar meni normalno deluje. Kaj pa pravi RowState? Je še vedno unchanged al je modified? Ker maš tipiziran dataset, se lahko obesiš na dogodek RowChanging in tam preveriš, če se podatek nastavi oziroma če se stanje vrstice spremenilo oziroma ali je prišlo do kake napake pri tem (poglej si stanje vrstice Proposed --> primer tukaj). Domnevam, da v tej fazi še nočeš pisat v podatkovno bazo, ne? Če pa hočeš že tukaj spremeniti vrednosti, pa pokliči AcceptChanges() metodo.  Predlagam tudi, da si prebereš tole, zna koristit.