Visualizzazione dei risultati da 1 a 7 su 7

Discussione: ADO.NET e OLEDBCOMMAND

  1. #1

    ADO.NET e OLEDBCOMMAND

    Volevo sapere come faccio a sapere se da una query non ottengo nessun risultato...

    io di solito uso questa formula per ricavare i dati...

    codice:
            Dim sconny As OleDbConnection = New OleDbConnection(sConnessione)
            Dim cprova As OleDbCommand = New OleDbCommand("SELECT * FROM tabella etc etc", sconny)
            sconny.Open()
            cgriglia.DataSource = cprova.ExecuteReader
            cgriglia.DataBind()
            sconny.Close()
    xxxx

  2. #2
    Potresti provare a fare una seconda interrogazione utilizzando count(*) nella stringa di interrogazione e poi eseguire .ExecuteScalar() invece di ExecuteReader() che è meno adatto a questo scopo.

    Esempio
    codice:
    Dim strCount="SELECT count(*) as numRecord FROM tuaTabella;"
    Dim cmdCount as New OleDbCommand(strCount,objCon)
    numero=cmdCount.ExecuteScalar()
    Ciao


    Marco

  3. #3
    La cosa è interessante, però se i dati ci sono, poi dovrei ripetere una query per prendere i dati...

    Perché praticamente il problema è che se non ci sono record sulla pagina aspx non appare niente (ovviamente)...

    Chi apre quella pagina e non vede niente la prima cosa che pensa è che la query non funziona, piuttosto che pensare che ha dato un risultato nullo...

    Così avrei voluto intercettare il ritorno dei dati per sapere se c'era qualcosa...

    Cavolo, con asp 2.0/3.0 era facilissimo...il recordset era EOF...

    Adotterò comunque la tua soluzione...
    xxxx

  4. #4
    con Dataset

    dataset.tables(0).rows.count
    [ti ritorna il count dei records]

    con datareader

    datareader.hasrows
    [ti ritorna TRUE o FALSE a seconda se ci sono dati o no]

  5. #5
    Fichissima questa soluzione...

    Grazie ad entrambi per il supporto... :gren:
    xxxx

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    scusate se riapro questo vecchio post ma ho lo stesso problema e non riesco a capire come risolvere, vi posto il mio codice mi date una mano, non ho capito dove va dataset.tables(0).rows.count, dataset me lo segna come errore:

    codice:
     Dim strSql As String
    
            objConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source='" & Server.MapPath("mioDB.mdb") & "'")
            strSql = "SELECT * FROM provaDB"
            objRs = New OleDbCommand(strSql, objConn)
    
    
            objConn.Open()
            DataSet.Tables(0).rows.count()
            risultati.DataSource = objRs.ExecuteReader
    
    
            risultati.DataBind()
            objConn.Close()
    Ciao By Peter_Pan...

  7. #7
    Originariamente inviato da Peter_Pan
    scusate se riapro questo vecchio post ma ho lo stesso problema e non riesco a capire come risolvere, vi posto il mio codice mi date una mano, non ho capito dove va dataset.tables(0).rows.count, dataset me lo segna come errore:
    Fossi in te aprirei un nuovo thread specificando meglio il tuo problema. Nel codice che hai postato, cerchi di usare un oggetto chiamato "DataSet" e probabilmente questo oggetto nel tuo codice non esiste e anche se esistesse non mi sembra abbia niente a che vedere con il tuo objRs.ExecuteReader . Quindi elimina quella riga di codice e visto che usi un datareader per sapere se nel datareader ci sono righe es. (occhio alla sintassi)
    codice:
    dim mioDr as OleDbDatareader = objRs.ExecuteReader
    if mioDr.hasrows
    risultati.DataSource = mioDr
    risultati.DataBind() 
    end if
    objConn.Close()
    Saluti a tutti
    Riccardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.