Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    problema OleDbDataReader

    ciao ragazzi,
    ho un problema sul codice di seguito:

    mi da un errore che non capisco:
    Handle di riga non valido.....

    dove sbaglio grazie

    Dim strSQL As String
    Dim ok As String = ""
    Dim conta As Integer
    strSQL = "SELECT * FROM tot_pagina WHERE pagina ='" & pagina & "'"
    Dim Cmd As New OleDbCommand(strSQL, Conn)
    Conn.Open()
    Dim myreader As OleDbDataReader = Cmd.ExecuteReader()
    Try
    If myreader.Read Then
    ok = "ok"
    Else
    conta = myreader("total_visite")
    conta = conta + 1
    End If
    Catch myException As Exception
    myException.Message.ToString()
    End Try
    myreader.Close()
    Conn.Close()

    nota la tabella e composta da tre campi: ID,Pagina,total_visite

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: problema OleDbDataReader

    Originariamente inviato da rafpas
    ciao ragazzi,
    ho un problema sul codice di seguito:

    mi da un errore che non capisco:
    Handle di riga non valido.....

    dove sbaglio grazie

    Dim strSQL As String
    Dim ok As String = ""
    Dim conta As Integer
    strSQL = "SELECT * FROM tot_pagina WHERE pagina ='" & pagina & "'"
    Dim Cmd As New OleDbCommand(strSQL, Conn)
    Conn.Open()
    Dim myreader As OleDbDataReader = Cmd.ExecuteReader()
    Try
    If myreader.Read Then
    ok = "ok"
    Else
    conta = myreader("total_visite")<---devi utilizzare il metodo GetString(Numero del campo del database) ma prima lo devi definire.
    Nella stringa SQL devi mettere anche total_visite come campo oltre che tot_pagina.

    conta = conta + 1
    End If
    Catch myException As Exception
    myException.Message.ToString()
    End Try
    myreader.Close()
    Conn.Close()

    nota la tabella e composta da tre campi: ID,Pagina,total_visite

  3. #3
    ciao joe taras

    non capisco bene il fatto di definire il GetString puoi farmi un esempio

    ti ringrazio

    saluti

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: problema OleDbDataReader

    strSQL = "SELECT * FROM tot_pagina,total_visite WHERE pagina ='" & pagina & "'"
    ...
    ...

    Dim myreader As OleDbDataReader = Cmd.ExecuteReader()
    Try
    If myreader.Read Then
    ok = "ok"
    Else
    conta = myreader.GetInt(1)
    conta = conta + 1
    End If
    ...
    ...

    Ti ho modificato il frammento di codice
    Non so cosa vuoi fare precisamente, ma ogni volta che vuoi ricavare il valore di un campo innanzitutto lo devi inserire nella SELECT poi devi ottenerlo utilizzando il metodo GetString o GetInt o gli altri a seconda di quale tipo hai utilizzato per definire il campo.
    NB Il numero tra parentesi (1) indica l'indice del campo, dato che si parte da (0), (1) indica il campo tot_visite.

    Ciao

    Se ci sono problemi ripostami

  5. #5
    ok,

    faccio delle prove

    e ti faccio sapere

    ciao

  6. #6
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Ok!

    Ciao e in bocca al lupo

  7. #7
    ciao joe taras

    senti
    ho dichiarato conta come integer
    total_visite nel tabella e del tipo numerico

    xke mi da adesso errore:
    Cast from string "total_visite" to type integer is not valid

    saluti

  8. #8
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da rafpas
    ciao joe taras

    senti
    ho dichiarato conta come integer
    total_visite nel tabella e del tipo numerico

    xke mi da adesso errore:
    Cast from string "total_visite" to type integer is not valid

    saluti
    Che metodo hai usato per recuperare il valore di totale_visite?
    Se hai usato GetString hai sbagliato, sei hai usato GetInt32 controlla il tipo di valore numerico impostato nella tabella cioè se è un intero lungo o altro.

    Ciao

  9. #9
    ciao,

    ho usato il metodo
    GetInt32

    nella tabella "total_visite" e un intero lungo

    saluti

  10. #10
    Non è possibile fare il cast diretto da string a intero (solo il contrario). per convertire la variabile devi usare l'oggetto Convert di System:
    codice:
      conta=System.Convert.ToInt32(myreader("total_visite"))
    Pero il datareader a i metodi specifici per estrarre un tipo particolare, ti conviene usare quelli (anche se devi usare l'indice della colonna:
    codice:
      conta=myreader.GetInt32(0)

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.