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)
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 - sreda, 11. avgust 2010
RowState : modified v polju IsPrinted pa piše : 'commRow.IsPrinted' threw an exception of type 'System.Data.StrongTypingException'
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.