2016-08-26 14 views
-1

Ich möchte eine if Bedingung machen, die den Wert des Feldnamens überprüft oder wenn der Feldname kleiner oder gleich der Zahl ist, die der Benutzer angegeben hat, so dass der Wert des Datenfelds wird nicht gleich negative sein. Mein Problem ist, wie kann ich einen Feldnamen auf einem if Zustand erklären? Bitte seien Sie nett und fühlen Sie sich frei, meine Frage zu bearbeiten.Überprüfen, ob Feldname 0 ist

Hier ist die Codierung:

if (reader.Read()) 
    { 
    OleDbCommand cmd = new OleDbCommand(@"Update TblInventory set 
Quantity = Quantity - @Quantity WHERE ItemCode = @itemcode"); 
    cmd.Connection = con; 

    cmd.Parameters.AddWithValue("@Quantity", Convert.ToInt32(row.Quantity)); 
    cmd.Parameters.AddWithValue("@itemcode", row.Item); 
    cmd.Parameters.AddWithValue("@DateAndTime", time); 
    cmd.ExecuteNonQuery(); 
    MessageBox.Show("You added " + row.Quantity + " " + row.Product, "Existing Item"); 
} 

EDIT

Die Eingangsgröße wird von der field Quantity

UPDATE

, was ich bisher versucht hatte, abgezogen werden:

cmd.Connection = con; 
cmd.Parameters.AddWithValue("@Quantity", Convert.ToInt32(row.Quantity)); 
cmd.Parameters.AddWithValue("@itemcode", row.Item); 
cmd.Parameters.AddWithValue("@DateAndTime", time); 
int intQuantity = Convert.ToInt32(row.Quantity); 
    if (Convert.ToInt32("@Quantity") >= intQuantity) 
    { 
    cmd.ExecuteNonQuery(); 
    MessageBox.Show("Congrats"); 
    ... 

und sagte, dass die Eingabezeichenfolge nicht im richtigen Format war. Das Feld ist in einem text form.

+1

Was meinst du gleich negativ? Welches Feld möchten Sie vergleichen? –

+0

Da, wenn der Benutzer einen Wert eingibt, der höher als der Wert des '' Quantity field'' ist, wird der update Wert der '' Quantity'' negativ sein –

Antwort

0

Dieser Code überprüft, ob größer oder gleich row.Quantity ist.

if (reader.Read()) 
{ 
    OleDbCommand cmd = new OleDbCommand(@"Update TblInventory set 
    Quantity = Quantity + @Quantity WHERE ItemCode = @itemcode"); 
    cmd.Connection = con; 

    cmd.Parameters.AddWithValue("@Quantity", Convert.ToInt32(row.Quantity)); 
    cmd.Parameters.AddWithValue("@itemcode", row.Item); 
    cmd.Parameters.AddWithValue("@DateAndTime", time); 

    if (Quantity >= Convert.ToInt32(row.Quantity)) 
    { 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show("You added " + row.Quantity + " " + row.Product, "Existing Item"); 
    } 
    else 
    { 
     MessageBox.Show("Quantity must not be negative."); 
    } 
} 

Wenn dies nicht das ist, was Sie wollten, lassen Sie es mich bitte wissen.

+0

sir muss es 'Quantity> = row.Quantity' sein, aber wie könnte ich das tun? –

+0

Ich habe die 'if' -Klausel dafür geändert, unter der Annahme, dass' Quantity' eine lokale Variable, ein Feld oder ein Parameter ist. Wenn nicht, lege einfach die Menge an dieser Stelle ab. –

+0

Der Name 'Quantity' existiert nicht im aktuellen Kontext –