Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Perchè non mi funziona questo databinding?

    ciao a tutti.. e buon natale
    devo fare il databinding di un controllo server dropdownlist su un campo del database.. ma purtroppo mi esce fuori questo errore:

    System.Web.HttpException: DataBinder.Eval: 'System.Data.Common.DbDataRecord' non contiene una proprietà con nome Antonietta...etc..

    "Antonietta" è il contenuto del primo record del campo "nome_cliente" della tabella "tab_clienti" in alias "cn"
    Ecco come ho fatto:
    codice:
    try
    			{
    				string strconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("~/db/dbmaimone.mdb");	
    				string strsql = "SELECT tab_clienti.id_clienti AS cid,tab_clienti.nome_cliente AS cn,tab_clienti.cognome_cliente AS cc,tab_lavoranti.id_lavoranti AS lid,tab_lavoranti.nome AS ln,tab_lavoranti.cognome AS lc,tab_servizi.id_servizi AS sid,tab_servizi.nome_servizio AS sn,tab_servizi.costo_servizio AS sc FROM tab_clienti,tab_lavoranti,tab_servizi";
    			
    				OleDbConnection conn= new OleDbConnection(strconn);
    				OleDbCommand cmd=new OleDbCommand(strsql,conn);	
    				conn.Open();
    				OleDbDataReader reader=cmd.ExecuteReader();
    				
    
    				while(reader.Read())
    							 {
    					Dlist_cliente.DataSource=reader;
    					Dlist_cliente.DataTextField=reader["cn"].ToString();
    					Dlist_cliente.DataValueField=reader["cid"].ToString();
    					Dlist_cliente.DataBind();
    							 }
    				reader.Close();
    				conn.Close();
    			}
    			catch (Exception err)
    			{
    				
    				Response.Write(err.ToString());
    					
    			}
    come mai mi dà questo errore?
    Grazie
    Voglio l'alt+s anche per FF

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Se non sbaglio ai parametri

    DataTextField
    DataValueField

    devi passare i nomi dei campi da dove prendere i dati non i dati stessi

    in pratica devi mettere

    Dlist_cliente.DataTextField="cn";
    Dlist_cliente.DataValueField="cid";

    Però con il datareader non funziona così, non serve il while.

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ok ho fatto così e funziona:
    codice:
    Dlist_cliente.DataSource=reader;
    					Dlist_cliente.DataTextField="cn";
    					Dlist_cliente.DataValueField="cid";
    					Dlist_cliente.DataBind();
    solo che mi ripete sempre gli stessi record.. io ne ho soo quattro..
    ah ovviamente ho eliminato anche il while
    Voglio l'alt+s anche per FF

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    nessuno mi risponde?
    Voglio l'alt+s anche per FF

  5. #5
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Naturalmente sei sicuro di caricarlo una volta sola!
    Prova mettere un punto di interruzione e debuggando guarda se carichi più volte i valori.
    Se lo fai più volte la viewstate ti mantiene quelli che hai già messo e se continui a provare la lista si allunga sempre di più.
    Ciao
    e buon Santo Stefano( davanti al pc )
    Legnetto

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Perchè non mi funziona questo databinding?

    Originariamente inviato da dops
    ciao a tutti.. e buon natale
    devo fare il databinding di un controllo server dropdownlist su un campo del database.. ma purtroppo mi esce fuori questo errore:

    System.Web.HttpException: DataBinder.Eval: 'System.Data.Common.DbDataRecord' non contiene una proprietà con nome Antonietta...etc..

    "Antonietta" è il contenuto del primo record del campo "nome_cliente" della tabella "tab_clienti" in alias "cn"
    Ecco come ho fatto:
    codice:
    try
    			{
    				string strconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("~/db/dbmaimone.mdb");	
    				string strsql = "SELECT tab_clienti.id_clienti AS cid,tab_clienti.nome_cliente AS cn,tab_clienti.cognome_cliente AS cc,tab_lavoranti.id_lavoranti AS lid,tab_lavoranti.nome AS ln,tab_lavoranti.cognome AS lc,tab_servizi.id_servizi AS sid,tab_servizi.nome_servizio AS sn,tab_servizi.costo_servizio AS sc FROM tab_clienti,tab_lavoranti,tab_servizi";
    			
    				OleDbConnection conn= new OleDbConnection(strconn);
    				OleDbCommand cmd=new OleDbCommand(strsql,conn);	
    				conn.Open();
    				OleDbDataReader reader=cmd.ExecuteReader();
    				
    
    				while(reader.Read())
    							 {
    					Dlist_cliente.DataSource=reader;
    					Dlist_cliente.DataTextField=reader["cn"].ToString();
    					Dlist_cliente.DataValueField=reader["cid"].ToString();
    					Dlist_cliente.DataBind();
    							 }
    				reader.Close();
    				conn.Close();
    			}
    			catch (Exception err)
    			{
    				
    				Response.Write(err.ToString());
    					
    			}
    come mai mi dà questo errore?
    Grazie
    Non vorrei dire una caz*** prova così:
    codice:
    try
    {
    	string strconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("~/db/dbmaimone.mdb");	
    	string strsql = "SELECT tab_clienti.id_clienti AS cid,tab_clienti.nome_cliente AS cn,tab_clienti.cognome_cliente AS cc,tab_lavoranti.id_lavoranti AS lid,tab_lavoranti.nome AS ln,tab_lavoranti.cognome AS lc,tab_servizi.id_servizi AS sid,tab_servizi.nome_servizio AS sn,tab_servizi.costo_servizio AS sc FROM tab_clienti,tab_lavoranti,tab_servizi";
    
    	OleDbConnection conn= new OleDbConnection(strconn);
    	OleDbCommand cmd=new OleDbCommand(strsql,conn);	
    	conn.Open();
    	OleDbDataReader reader=cmd.ExecuteReader();
    
    
    	//while(reader.Read())
    				 //{
    		Dlist_cliente.DataSource=reader;
    		Dlist_cliente.DataTextField=reader["cn"].ToString();
    		Dlist_cliente.DataValueField=reader["cid"].ToString();
    		Dlist_cliente.DataBind();
    				 //}
    	reader.Close();
    	conn.Close();
    }
    catch (Exception err)
    {
    
    	Response.Write(err.ToString());
    
    }


    ps. la chiusura va nel blocco finally
    Pietro

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.