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

    aiutino su chiamata di funzione

    ciao a tutti,

    allora io ho una funzione dove passo 3 parametri. Una volta questi parametri sono 2 e un'altra volta sono 3. Io ricevo errore solo quando passo solo 2 dei 3 parametri.
    La chiamata alla funzione è questa:
    codice:
    Risultato_Upload = IO_Upload.Upload_Immagine(inputFile.PostedFile.FileName,"","insert")
    mentre la funzione è dichiarata in questo modo:
    codice:
    Public Function Upload_Immagine(ByVal inputFile As Web.UI.HtmlControls.HtmlInputFile, ByVal Image As Web.UI.WebControls.Image, ByVal opz As String) As String

    Compilation Error

    Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: BC30311: Value of type 'String' cannot be converted to 'System.Web.UI.HtmlControls.HtmlInputFile'.

    come devo fare per evitare questo errore?

  2. #2
    ho risolto almeno credo l'errore che vi ho postato in precedenza però ora ne ho un'altro e mi risulta molto strano visto che lo stesso codicelo utilizzo in un'altra pagina e funziona correttamente.

    nella pagine login.aspx:
    codice:
    dim ObjDatabase as new TYASPNET.database()
    		
    	ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
    	
    	Dim objReader As OleDbDataReader
    	
    	objReader = objDatabase.SelectSQL("SELECT id FROM Admin WHERE Nome='"& ObjDatabase.Controlla_Stringa(Nome.text) &"' AND Pwd='"& ObjDatabase.Controlla_Stringa(Pwd.Text) &"' ")
    	
    	if not objReader is nothing then
    nella pagina insert.aspx dove non funziona:
    codice:
    Sub Carica_Menu(Sender As Object, E As EventArgs)
      dim ObjDatabase as new TYASPNET.database()
    	
      ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
    		
      Dim objReader As OleDbDataReader
    		
      objReader = objDatabase.SelectSQL("SELECT Menu FROM Menu WHERE Cat='"& Disciplina.items(Disciplina.SelectedIndex).Value &"' ")	
    			
      if not objReader is nothing then
    	'valore della dropdown list
    	Categoria.DataValueField = "Menu" 
    	'testo della dropdown list 
    	Categoria.DataTextField = "Menu" 
    	'esecuzione della query 
    	Categoria.DataSource = objReader
    	Categoria.DataBind()
      else
    	lblmessage.text="ERRORE NELLA QUERY"
      end if
    End Sub
    mi va sempre nella parte else. Cosa può essere?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    204
    Quando utilizzi il datareader per leggere i dati non puoi controllare se sono presenti i dati con la sintassi da te utilizzata. Nel tuo caso ti consiglio di cercare di inserirei questi dati nel Dropdownlist. Quindi controllare in questo se in esso sono presenti dei dati:
    codice:
    Dim objReader As OleDbDataReader
    		
      objReader = objDatabase.SelectSQL("SELECT Menu FROM Menu WHERE Cat='"& Disciplina.items(Disciplina.SelectedIndex).Value &"' ")	
    			
    	'valore della dropdown list
    	Categoria.DataValueField = "Menu" 
    	'testo della dropdown list 
    	Categoria.DataTextField = "Menu" 
    	'esecuzione della query 
    	Categoria.DataSource = objReader
    	Categoria.DataBind()
    if categoria.Items.Count=0 then
    	lblmessage.text="ERRORE NELLA QUERY"
      end if
    Nel Framework 1.1 è presente un attributo del datareader che dice se la query ha restituito dei risultati. Ma per adesso è inutile anche parlarne...
    Ciao
    'Alchimista'

  4. #4
    ho provato a fare come dici tu ma è la stessa cosa. La cosa strana è che quando non utilizzavo le classi lo stesso codice funzionava perfettamente, perciò secondo me c'è qualcosa che non va con la stringa di connessione o con qualche passaggio di parametri con la classe.

    cerco di darvi + informazioni possibili:
    in questa pagina ci sono 2 Dropdownlist. Uno di questi in base alla selezione fatta popola l'altro Dropdownlist con una chiamata ad una procedura. Tutti e 2 hanno setto l'AutoPostBack=true.

    codice:
    Sub Carica_Menu(Sender As Object, E As EventArgs)
    	dim ObjDatabase as new TYASPNET.database()
    		
    	ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
    		
    	Dim objReader As OleDbDataReader
    		
    	objReader = objDatabase.SelectSQL("SELECT Menu FROM Menu WHERE Cat='"& Disciplina.items(Disciplina.SelectedIndex).Value &"' ")	
    	if not objReader is nothing then
    		Categoria.DataValueField = "Menu" 
    		Categoria.DataTextField = "Menu" 
    		Categoria.DataSource = objReader
    		Categoria.DataBind()
    	else
    		lblmessage.text="ERRORE NELLA QUERY"
    	end if
    End Sub
    In questapagina ci sono 2 procedure che si connettono al DB, perciò se io metto la parte in corsivo appena apro i TAG <script> va bene lo stesso? o devo per forza metterli in ogni procedura che fa operazoni sul DB?


    vi riporto il codice della classe:
    codice:
    Public Class database
            Public ConnectionString As String
            Dim objConn As New OleDbConnection()
            Dim objCmd As New OleDbCommand()
    
            Public Function SelectSQL(ByVal strSelect As String) As OleDbDataReader          
                Try
                    objConn = New OleDbConnection(ConnectionString)
                    objCmd = New OleDbCommand(strSelect, objConn)
                    objCmd.Connection.Open()
                    Return objCmd.ExecuteReader
                    objCmd.Connection.Close()
                Catch ex As OleDbException
                    Return Nothing
                End Try
            End Function
    .
    .
    .
    Il codice che vi ho riportato funziona perfettamente quando faccio il login nell'area privata:
    codice:
    Sub Login(ByVal sender As Object, ByVal e As System.EventArgs)
    	dim ObjDatabase as new TYASPNET.database()
    		
    	ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("mdb-database/fg-tunisie.mdb")
    	
    	Dim objReader As OleDbDataReader
    	
    	objReader = objDatabase.SelectSQL("SELECT id FROM Admin WHERE Nome='"& ObjDatabase.Controlla_Stringa(Nome.text) &"' AND Pwd='"& ObjDatabase.Controlla_Stringa(Pwd.Text) &"' ")
    	
    	if not objReader is nothing then
    		Session("Admin")="ok"
    		objReader.Close
    		response.redirect ("index.aspx")
    	else
    		Errore.Visible = True
    		Errore.Text = "ERRORE NELLA QUERY"
    	end if
    
    End Sub
    perciò il codice va, sicuramente c'è qualcosa che non va con il passaggio dei parametri alla classe e io credo che sia il connectionString però non riesco a cpire il motivo.

  5. #5
    come dicevo sicuramente era il connectionstring infatti ho fatto un'errore nel passaggio dele stringa di connessione.


    me ne sono accorto ed ho risolto.

    grazie

  6. #6
    senza che apro un nuovo post, vi scrivo qui l'ultimo errore che ho con le funzioni.

    vi riporto direttamente il codice:
    codice:
    Sub Page_Load(Src As Object, E As EventArgs) 
    	if not page.IsPostBack then
    		Dim objReader As OleDbDataReader
    		dim ObjDatabase as new TYASPNET.Database()
    			
    		ObjDatabase.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("../mdb-database/fg-tunisie.mdb")
    			
    		objReader = objDatabase.SelectSQL("SELECT * FROM Prodotti WHERE Codice='"& Request.QueryString("codice") &"' ")
    		
    		if not objReader is nothing then
    			Codice.text = objReader("Codice") 
    			Titolo.text = objReader("Titolo") 
    			Prezzo.text = objReader("Prezzo") 
    		        Image1.ImageUrl= "../image/"+objReader("img") 
    		else
    			lblmessage.text="ERRORE"
    		end if				
    	end if
    End Sub

    Vedete la parte in neretto? Quell'assegnazione non la posso fare.

    Vi riporto sempre il codice della classe:
    codice:
    Public Class database
            Public ConnectionString As String
            Dim objConn As New OleDbConnection()
            Dim objCmd As New OleDbCommand()
    
            Public Function SelectSQL(ByVal strSelect As String) As OleDbDataReader          
                Try
                    objConn = New OleDbConnection(ConnectionString)
                    objCmd = New OleDbCommand(strSelect, objConn)
                    objCmd.Connection.Open()
                    Return objCmd.ExecuteReader
                    objCmd.Connection.Close()
                Catch ex As OleDbException
                    Return Nothing
                End Try
            End Function
    .
    .
    .
    ????

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    prova

    do while not objreader.eof
    objreader.item("campo1")
    objreader.nextresult
    loop

    koning

  8. #8
    ho provato a scrivere questo:
    Codice.text = objReader.item("Codice")

    ma ricevo semrpe questo errore:
    No data exists for the row/column.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: No data exists for the row/column.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    sembra che

    non trovi il campo o il campo non esista....sei sicuro che il reader che ti viene restituito sia pieno??

    koning

  10. #10
    sto cercando di rifarlo in un altro modo e vedo che cmq ho errore perciò ora vedo di trovarlo e semmai proprio se non ci riesco chiedo aiuto di nuovo.

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.