Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Associare il contenuto di un datareader..

    il mio nuovo Problema...

    codice:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Put user code to initialize the page here
            Dim myConn As SqlConnection
            Dim myCommand As SqlCommand
            Dim myData As SqlDataReader
            Dim matr As String = Session("matr")
    
            'connessione db
            myConn = New SqlConnection("Server=SERVER;uid=UID;pwd=PWD;database=DB")
    
            Try
    
                'query db
                myConn.Open()
                myCommand = New SqlCommand("SELECT pn_giorno, pn_cliente1, pn_ore_cliente1, pn_ore_straordinario, pn_ore_sede, pn_ore_mutua, pn_ore_ferie FROM myTable WHERE pn_mat = '" & matr & "' ", myConn)
                myData = myCommand.ExecuteReader()
                txtGiorno.Text = myData("pn_giorno") <-- L'errore arriva qua! E va in eccezione.. 
                txtCliente.Text = myData("pn_cliente1")
                txtOreCliente.Text = myData("pn_ore_cliente1")
                txtStraord.Text = myData("pn_ore_straordinario")
                txtSede.Text = myData("pn_ore_sede")
                txtMutua.Text = myData("pn_ore_mutua")
                txtFerie.Text = myData("pn_ore_ferie")
    
            Catch ex As Exception
                'errore
                Response.Write(ex)
            End Try
    
            myConn.Close()
    
        End Sub
    allora... io al caricamento della pagina .. che arriva dal click di un bottone di un'altra pagina per intenderci.. voglio che nelle textbox vengano assiocati determinati valori di determinati campi della mia tabella..!
    perchè io uso il datareader.. ma mi dà errore dicendo che non legge niente..

    spero di essere stato per lo meno chiaro.. grazie per gli aiuti..!!!

    ps.. non posso usare la session perchè poi devo aggiornare i campi come avrete notato e tiene in memoria quello che gli passo precedentemente...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    ti dà errore xkè tu stai assegnando ad un textbox un array di valori..
    o fai
    myCommand = New SqlCommand("SELECT TOP 1pn_giorno, pn_cliente1, pn_ore_cliente1, pn_ore_straordinario, pn_ore_sede, pn_ore_mutua, pn_ore_ferie FROM myTable WHERE pn_mat = '" & matr & "' ", myConn)
    oppure c'hai + di 1 valore.. x cui se li vuoi tuttti devi come minimo fare un ciclo..

  3. #3
    Originariamente inviato da sms
    ti dà errore xkè tu stai assegnando ad un textbox un array di valori..
    o fai
    myCommand = New SqlCommand("SELECT TOP 1pn_giorno, pn_cliente1, pn_ore_cliente1, pn_ore_straordinario, pn_ore_sede, pn_ore_mutua, pn_ore_ferie FROM myTable WHERE pn_mat = '" & matr & "' ", myConn)
    oppure c'hai + di 1 valore.. x cui se li vuoi tuttti devi come minimo fare un ciclo..
    nada... questo è l'errore...

    System.InvalidOperationException: Tentativo non valido di lettura in assenza di dati. at System.Data.SqlClient.SqlDataReader.PrepareRecord( Int32 i) at System.Data.SqlClient.SqlDataReader.GetValue(Int32 i) at System.Data.SqlClient.SqlDataReader.get_Item(Strin g name) at Consultivo_Ore.modifica.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\Consultivo_Ore\modifica.aspx.vb :line 55

  4. #4
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    MSDN mi sembra abbastanza chiaro:

    The default position of the SqlDataReader is prior to the first record. Therefore, you must call Read to begin accessing any data.
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    devi staccare l'1 da pn_giorno ho sbagliato a scrivere..
    se ancora nn va utilizza
    txtGiorno.Text = myData("pn_giorno")(0)

  6. #6

    Re: Associare il contenuto di un datareader..

    Originariamente inviato da j0nAtHaN
    myData = myCommand.ExecuteReader()
    txtGiorno.Text = myData("pn_giorno") <-- L'errore arriva qua! E va in eccezione..
    come ha gia' detto anche biste, e' necessario usare il metodo read del datareader per accedere ai record contenuti e prima di farlo e' anche buona regola verificare che il risultato non sia dbnull es.
    codice:
    While myData.Read
                If Not IsDBNull(myData(0)) Then txtCliente.Text = myData.GetString(0)
            End While
    Saluti a tutti
    Riccardo

  7. #7
    grazie a tutti degli aiuti problema risolto!!!

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.