Fejl med grid håndtering i c# .net
Hejsa.Jeg har lavet et stykke PDA software.
Det bruges til bordbestillinger mv.
Programmet har en række knapper, som indeholder produkter. F.eks. lille øl, mellem øl, mellem cola osv osv osv...
Hver gang jeg trykker på en af disse knapper, bliver produktet lagt op i et grid i toppen af skærmen.
Dette grid har felterne : antal, produkttekst, pris
Hvis et produkt ligger i griddet i forvejen, så skal den ikke tilføje en nye linie til griddet, men blot ændre antal på den eksisterende linie. F.eks. hvis der allerede er trykket en "Lille øl" ind, så skal den blot ændre antal fra 1 til 2.
Det virker sådan set fint nok, så længe at den linie man vil redigere antal i, ligger som den sidst indtastede linie.
Hvis den ikke gør det så fejler min kode.
Her er den kode, jeg bruger til at lave dette tjek med :
--------
DataRow gridRow;
gridRow = ReceiptGridTable.NewRow();
gridRow["ITEMS"] = Items;
gridRow["TEXT"] = ProductText;
gridRow["PRICE"] = Items * Price;
gridRow["PRODUCT_NO"] = ProductNo;
gridRow["LINE_NO"] = LineNo;
if (System.Convert.ToInt32(gridRow["LINE_NO"]) == -1)
{
Int32 W = 0;
Int32 R = ReceiptGridTable.Rows.Count;
while (W < R)
{
String text = System.Convert.ToString(RecieptGrid[W, 1]);
if (text == System.Convert.ToString(gridRow["TEXT"]))
{
DataRow Row;
Row = ReceiptGridTable.Rows[R -1];
Int32 Litems = System.Convert.ToInt32(RecieptGrid[W,0]);
Double Lprice = System.Convert.ToInt32(RecieptGrid[W, 2]);
ReceiptGridTable.Rows.Remove(Row);
gridRow["ITEMS"] = Litems + System.Convert.ToInt32(gridRow["ITEMS"]);
gridRow["PRICE"] = Lprice + System.Convert.ToDouble(gridRow["PRICE"]);
}
W = W + 1;
}
ReceiptGridTable.Rows.Add(gridRow["ITEMS"], gridRow["TEXT"], gridRow["PRICE"], gridRow["PRODUCT_NO"], gridRow["LINE_NO"]);
}
-----------
Den fejl jeg får hedder :
"Index 1 is either negative or above rows count."
Muligvis er det mig, som griber det forkert an. Jeg forstår ikke helt denne fejl, og håber en kan give en hjælpende hånd!
På forhånd tak!
/Lasse
