Oppure

Loading
09/03/11 13:08
carmine
Ragazzi dovrei controllare che una tabella sia vuota cioè senza alcun record ho provato cosi:
      public bool DbIsNull() 
        {
            object result;

            result = ExecuteQuery("SELECT COUNT(*) FROM FantaSquadra");

            if (result == null) return true;
            else return false;
        }

    public void Form1_Load(object sender, EventArgs e)
        {
            bool result;
            SetConnection();
            result = DbIsNull();
            if (result==true) { LoadData();  }
            else
            {
            
                     //instruzioni...
            }
        }


ma purtroppo non mi funziona mi dice che è sempre pieno cioè non esegue le istruzioni in caso di mancanza di record, come posso risolvere??

public object ExecuteQuery(string txtQuery)  // funzione per le query
        {
                object result;
                sql_con.Open();
                sql_cmd = sql_con.CreateCommand();
                sql_cmd.CommandText = txtQuery;
                result = sql_cmd.ExecuteScalar();
                sql_con.Close();
                return result;
        }

Ultima modifica effettuata da carmine 09/03/11 18:58
aaa
09/03/11 14:54
el borto
la query, se la tabella non ha record, non restituisce null ma 0 quindi dovresti fare :
if(Convert.ToInt32(result)==0)return true ;
else return false;

penso che così funzioni, mi dispiace ma al momento non posso provare il mio codice.
aaa
09/03/11 16:17
Il Totem
Postato originariamente da el borto:

la query, se la tabella non ha record, non restituisce null ma 0 quindi dovresti fare :
if(Convert.ToInt32(result)==0)return true ;
else return false;

penso che così funzioni, mi dispiace ma al momento non posso provare il mio codice.


Prima di tutto, come fai a saperlo? ExecuteQuery è richiamata in un metodo che viene prima di Form1_Load, perciò è richiamata nel contesto di una classe Form. Ergo, deve essere definita nello stesso contesto o in un modulo globale. Questo significa che potrebbe benissimo non essere la stessa di SqlCommand o OleDbCommand .ExecuteQuery, quindi il tipo di ritorno è sconosciuto. Detto questo, non puoi supporre che sia 0.

Se non fornisci il codice di ExecuteQuery, non possiamo aiutarti.

P.S.: nulla di impedisce di mettere un breakpoint e controllare il contenuto di result.
aaa
09/03/11 16:28
el borto
si totem, hai perfettamente ragione non avevo molto tempo e guardando di fretta il codice ho dato per scontato che il metodo restituisse semplicemente il risultato di una ExecuteReader o di una ExecuteScalare :_doubt: ; comunque ,come suggerisce totem, il modo migliore per trovare l'errore è mettere dei breakpoint e controllare il valore delle variabili durante il debug
aaa