Oppure

Loading
13/03/12 19:36
Ricky85
Ciao a tutti!

Sto facendo un programmino che comunica con un DB firebird e deve fare delle ricerche dentro il db stesso ma sono bloccato da stamattina e non ho ancora trovato soluzione!

In pratica devo fare ciò, nel db ci sono i MAC address delle macchine che si connettono salvate dentro ad una tabella, io devo poter connettermi con il mio programma e controllare se il MAC del pc che sto utilizzando è già nel db oppure no, fino ad ora sono arrivato a questo punto:


Dim Query As String = "SELECT * FROM licenze ORDER BY id ASC"
    Public Str_Co As String = "Database=il.mio.ip:c:\OdS_AT.FDB;ServerType=0;username=sysdba;password=masterkey;"
    Dim Co As New FbConnection

    ' Mi connetto, creo la tabella, la riempio e controllo se ci sono valori
    Co.ConnectionString = Str_Co
    Dim Adattatore As New FbDataAdapter(Query, Co)
    Dim Tabella As New DataTable
        Adattatore.Fill(Tabella)
        Adattatore.Dispose()
        Tabella.Dispose()

    Dim reg_macaddress As String = "8CA98277FEA9"

    Dim foundrows() As DataRow = Tabella.Select("macaddress = '" & reg_macaddress & "'")
        If foundrows.Count = 0 Then
            MessageBox.Show("Nessun record")
        ElseIf Tabella.Rows.Count > 0 Then

            MessageBox.Show(Tabella.Rows.Count)
        Else
            MessageBox.Show("errore")

        End If



Il problema è che pare non applichi il filtro sulla datatable perchè qualsiasi cosa ci sia scritta nel indirizzo MAC (sia che già esista sia che manchi) mi da sempre la quantità totale delle righe caricate nel DB.

Aiuto non so più dove sbattere la testa ><

Ultima modifica effettuata da Ricky85 13/03/12 19:36
aaa
13/03/12 19:42
Snogar
Scusa ma forse mi è sfuggito quale sia il tuo problema ....tu dici "mi da sempre la quantità totale delle righe caricate nel DB" .....ed è giusto, nella query che hai fatto gli dici di restituirti tutte le righe ordinate per ID ...non vedo dove sia il problema.
aaa
14/03/12 7:24
Snogar
Credo che il problema sia nel metodo Tabella.Dispose ....lo hai richiamato prima di utilizzare la tabella.

poi stavo notando che nei vari if non c'è la condizione per verificare un singolo record ...gli dici se foundrows è zero mandi un messaggio di Nessun Record ....se è maggiore di zero ti ritorna il numero totale delle righe e pr tutti gli altri casi mandi un messaggio di errore, ma non ha senso perchè la tabella o è vuota o c'è qualcosa quindi questa terza eventualità non si verificherà mai.
Ultima modifica effettuata da Snogar 14/03/12 7:32
aaa