Frage

Ich habe den folgenden Code, um eine sehr einfache Validierung für ein Textfeld durchzuführen

    if(txtInStock.Text.Length == 0)
        txtInStock.Text = Convert.ToString(0);

    if (txtInStock.Text.Length == 0)
        txtOnOrder.Text = Convert.ToString(0);

    int inStockAmt = Convert.ToInt32(txtInStock.Text);
    int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

Dies funktioniert gut, wenn Text! Wie kann ich das korrigieren?

War es hilfreich?

Lösung

Ihr Problem ist hier:

if (txtInStock.Text.Length == 0)
    txtOnOrder.Text = Convert.ToString(0);

Sie überprüfen die Länge eines Textfelds und setzen den Text eines anderen fest. Ändern Sie es in dies:

if (txtOnOrder.Text.Length == 0)
    txtOnOrder.Text = Convert.ToString(0);

Gibt es auch einen Grund, warum Sie verwenden Convert.ToString(0) statt gerecht "0"? Ich empfehle nicht besonders, diesen Ansatz für die Datenvalidierung zu verwenden, aber dies sollte das Problem beheben.

Andere Tipps

Da Sie nicht sicher sein können, dass der Benutzer Ihres Textfelds eine korrekte Ganzzahl schreibt, würde ich empfehlen, zu verwenden Int32.tryparse () anstelle von konvertieren.toint32. Daher können Sie die Fehlerfälle leicht verarbeiten.

Würde dieser Code tun?

    if(txtInStock.Text.Length == 0)
        txtInStock.Text = "0";

    if (txtInStock.Text.Length == 0)
        txtOnOrder.Text = "0";

    int inStockAmt = Convert.ToInt32(txtInStock.Text);
    int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

Hoffe das hilft, am besten, Tom.

Dies ist eine einfache Möglichkeit, ein leeres Textfeld zu handhaben

if( string.IsNullOrEmpty( txtInStock.Text ))
    txtInStock.Text = "0";

if( string.IsNullOrEmpty( txtOnOrder.Text ))
    txtOnOrder.Text = "0";

int inStockAmt = Convert.ToInt32(txtInStock.Text);
int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

Ich würde auch die Textbox -Werte in Tempo -Variablen speichern und dann die Vergleiche durchführen, es sei denn, Sie möchten eine 0 in der Textbox erzwingen, wenn es leer ist.

int instockAkt = convert.toint32 (string.isnullorEmpty (txtinstock.text)? 0: int.Parse (txtinstock.text));

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top