none
if su textbox vuota RRS feed

  • Domanda

  • Ciao ragazzi!

    per evitare che venga salvata una stringa vuota di una textbox in un database posso mettere un controllo con un if in modo tale che se lascio la textbox vuota e clicco sul tasto aggiungi mi venga fuori un messaggio: "Non sono ammesse descrizione vuote ecc...".

    Graziee!!!!!

    venerdì 3 ottobre 2014 21:09

Risposte

  • Ciao cordix1988,

    funziona mi ero dimenticato una { però poi a questo punto interrompo l'esecuzione del resto del codice tramite il break;

    giusto?

    no, perché nell'evento click di button1, hai un costrutto if che verifica mediante la funzione se le TextBox sono valorizzate, quindi 

      private void button1_Click(object sender, EventArgs e)
            {
                if (CheckText(textBox1, textBox2))
                {
                    MessageBox.Show("Compilare tutti i campi obbligatori");
                }
    
                else
                {
                    // il resto del tuo codice qui
                }
            }

    se la funzione restituisce valore true, visualizzi la messagebox, per cui tutto il codice all'interno del costrutto else viene ignorato, se false non sarà visualizzata la messagebox, è in questo caso viene eseguito tutto il codice all'interno del costrutto else. Il costrutto break, è invece utilizzato all'interno di un costrutto switch. Quest'utlimo è molto più utile se hai la necessità di verificare più condizioni, nel tuo caso un if va benissimo.

    Potresti ancora correggere il codice in questo modo con l'utilizzo della keyword return.

            private void button1_Click(object sender, EventArgs e)
            {
                if (CheckText(textBox1, textBox2))
                {
                    MessageBox.Show("Compilare tutti i campi obbligatori");
                    return;
                }
    
                else
                {
                    // il resto del tuo codice qui
                }
            }
     

    Anche qui, se la funzione restituisce true, visualizzi la messagebox, ma con la differenza che si uscirebbe immediatamente dall'evento click di button1, questo perché lo si viene imposto come detto sopra con la keyword return,senza proseguire tramite il costrutto else. Per capire meglio metti un breakpoint sull'evento click del pulsante, e a step con il pulsante F11 visualizzi tutti i passaggi, così riuscirai a capire come funziona tutto.

    Ciao.


    sabato 4 ottobre 2014 08:30

Tutte le risposte

  • Ciao cordix1988,

    Ciao ragazzi!

    per evitare che venga salvata una stringa vuota di una textbox in un database posso mettere un controllo con un if in modo tale che se lascio la textbox vuota e clicco sul tasto aggiungi mi venga fuori un messaggio: "Non sono ammesse descrizione vuote ecc...".

    Graziee!!!!!

    certamente, io ti consiglio di crearti una funzione che vada a controllare il/i controlli TextBox che devono essere necessariamente valorizzati, vedi esempio.

      private bool CheckText(params TextBox[] tetxboxes)
            {
                var result = false;
    
                foreach(var textProperties in tetxboxes)
                {
                    if(textProperties.Text.Equals(""))
                    {
                        result = true;
                    }
                }
    
                return result;
            }

    Questa funzione mediante la keyword params, ti permette di eseguire un controllo ad un numero variabile di controlli TextBox, quindi dinamico, questo significa che puoi controllare più controlli textbox contemporaneamente, in questo esempio ne vengono controllate due,al suo interno hai una variabile bool chiamata result, che dovrà restituire un valore true o false. Questo valore è dato dall'esito del ciclo foreach, ovvero andiamo a verificare se la proprietà Text del/i controlli TextBox sono vuoti, se vuoti la variabile sarà true, se invece tutti i controlli TextBox sono correttamente valorizzati sarà false.

    Per utilizzarla, lo farai in questo modo

        private void button1_Click(object sender, EventArgs e)
            {
                if(CheckText(textBox1,textBox2))
                {
                    MessageBox.Show("Compilare tutti i campi obbligatori");
                }
    
                else
                {
                    // il resto del tuo codice qui
                }
            }

    Al click su button1, viene richiamata la funzione che eseguirà quanto scritto sopra, se il valore di ritorno della funzione CheckText e true (essendo che è di tipo bool) avrai a video una messagebox, e non viene eseguito il codice all'interno della keyword else, se false prosegui con il codice che hai previsto tu. Ovviamente questo esempio dovrai adattarlo alle tue esigenze.

    Ciao.




    • Modificato Carmelo La Monica venerdì 3 ottobre 2014 21:51 Aggiunto maggiori informazioni alla risposta.
    venerdì 3 ottobre 2014 21:48
  • Ciao scusa non mi è molto chiaro la prima parte di codice:

    private bool CheckText(params TextBox[] tetxboxes) { var result = false; foreach(var textProperties in tetxboxes) { if(textProperties.Text.Equals("")) { result = true; } } return result; }

    ho provato a inserirla ma mi da alcuni errori; per esempio il var non me lo prende visual studio oppure anche params

    venerdì 3 ottobre 2014 22:07
  • Ciao cordix1988,

    Ciao scusa non mi è molto chiaro la prima parte di codice:

    private bool CheckText(params TextBox[] tetxboxes) { var result = false; foreach(var textProperties in tetxboxes) { if(textProperties.Text.Equals("")) { result = true; } } return result; }

    ho provato a inserirla ma mi da alcuni errori; per esempio il var non me lo prende visual studio oppure anche params

    che errori ti da il compilatore ? poi in che modo hai inserito tutto il codice ?

    Ciao.



    venerdì 3 ottobre 2014 22:15
  • funziona mi ero dimenticato una { però poi a questo punto interrompo l'esecuzione del resto del codice tramite il break;

    giusto?

    venerdì 3 ottobre 2014 23:42
  • Ciao cordix1988,

    funziona mi ero dimenticato una { però poi a questo punto interrompo l'esecuzione del resto del codice tramite il break;

    giusto?

    no, perché nell'evento click di button1, hai un costrutto if che verifica mediante la funzione se le TextBox sono valorizzate, quindi 

      private void button1_Click(object sender, EventArgs e)
            {
                if (CheckText(textBox1, textBox2))
                {
                    MessageBox.Show("Compilare tutti i campi obbligatori");
                }
    
                else
                {
                    // il resto del tuo codice qui
                }
            }

    se la funzione restituisce valore true, visualizzi la messagebox, per cui tutto il codice all'interno del costrutto else viene ignorato, se false non sarà visualizzata la messagebox, è in questo caso viene eseguito tutto il codice all'interno del costrutto else. Il costrutto break, è invece utilizzato all'interno di un costrutto switch. Quest'utlimo è molto più utile se hai la necessità di verificare più condizioni, nel tuo caso un if va benissimo.

    Potresti ancora correggere il codice in questo modo con l'utilizzo della keyword return.

            private void button1_Click(object sender, EventArgs e)
            {
                if (CheckText(textBox1, textBox2))
                {
                    MessageBox.Show("Compilare tutti i campi obbligatori");
                    return;
                }
    
                else
                {
                    // il resto del tuo codice qui
                }
            }
     

    Anche qui, se la funzione restituisce true, visualizzi la messagebox, ma con la differenza che si uscirebbe immediatamente dall'evento click di button1, questo perché lo si viene imposto come detto sopra con la keyword return,senza proseguire tramite il costrutto else. Per capire meglio metti un breakpoint sull'evento click del pulsante, e a step con il pulsante F11 visualizzi tutti i passaggi, così riuscirai a capire come funziona tutto.

    Ciao.


    sabato 4 ottobre 2014 08:30
  • Grazie mille!!!

    esatto era proprio questo che cercavo! praticamente volevo che si fermasse con l'esecuzione dell'else!

    Buona giornata!


    • Modificato cordix1988 sabato 4 ottobre 2014 09:32
    sabato 4 ottobre 2014 09:32