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

    [C#] popolamento dropdownlist da codebehind

    Ciao a tutti,
    vorrei popolare una dropdownlist con i dati di una tabella tipologica (id e nome prodotto) salvata in un datatable..

    scrivo:

    codice:
    string source = stringa di connessione;
     
    string select = "Select * from Tabella";
    OleDbConnection conn = newOleDbConnection(source);
    conn.Open();
    OleDbCommand comm = newOleDbCommand(select, conn);
    comm.CommandType = CommandType.Text;
    
    OleDbDataAdapter da = newOleDbDataAdapter(comm);
    
    DataSet ds = newDataSet();
    
    da.Fill(ds, "Tabella");
    
    DataTable dt = ds.Tables["Tabella"];
    


    ora se aggiungo questa riga

    dropdownlist.DataSource = dt;

    non visualizzo nessun record

    se invece scrivo
    dropdownlist.DataSource = dt.Rows[0][1].ToString();

    visualizzo solo l'id specificato

    come posso far mostrare tutti i dati?
    grazie

    Ultima modifica di djciko; 16-04-2015 a 13:25

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    mi sa che devi dirgli quali sono i campi DataTextField e DataValueField. (E mi sa anche DataMember ["Tabella"])
    E fare poi il Databind().


    un altro modo, con gli items costruiti uno per uno, un esempio c#
    codice:
     Public Shared Sub DropDownFill_SP(ByVal dropdown As System.Web.UI.WebControls.DropDownList, ByVal nomestored As String, ByVal parametri As System.Data.SqlClient.SqlParameter(), ByVal nomecampotext As String, ByVal nomecampovalue As String)
                Dim db As New Database.SqlTools
                Dim dtable As New DataTable
                Try
                    dtable = db.EseguiStoredConParametri_Datatable(nomestored, parametri)
    
    
                    ' Aggiungo gli items
                    Dim indicielementi As Integer = 0
                    For Each riga As DataRow In dtable.Rows
                        Dim itemdrop As New ListItem
                        If Not IsDBNull(riga(nomecampotext)) Then
                            itemdrop.Text = riga(nomecampotext)
                        End If
                        If Not IsDBNull(riga(nomecampovalue)) Then
                            itemdrop.Value = riga(nomecampovalue)
                        End If
                        dropdown.Items.Insert(indicielementi, itemdrop)
                        indicielementi += 1
                    Next
                Catch ex As Exception
                    Throw ex
                End Try
            End Sub

    Database.SqlTools era una mia classe
    Ultima modifica di djciko; 24-04-2015 a 15:40

  3. #3
    ok grazie,
    mi puoi però postare il codice per il primo modo? perché non mi è molto chiaro

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    codice:
                    dropdownlist.DataTextField = "campotext_della_tabella"
                    dropdownlist.DataValueField = "campovalue_della_tabella"
                    dropdownlist.DataSource = dt
                    dropdownlist.DataBind()

  5. #5
    ok ..
    adesso voglio inserire il valore della dropdownlist nel database
    ho scritto:

    codice:
    string descrizione = dropdownlist.SelectedItem.Text;
    string insert = "INSERT INTO [Tabella] ([Descrizione]) VALUES ('" + descrizione + "')";
    ma mi da errore sulla prima riga, mi dice Riferimento a un oggetto non impostato su un'istanza di oggetto



















  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    non saprei, hai provato con il debug ed hai selezionato il 3° elemento per esempio ?

    ps: stai attenta al postback !

  7. #7
    no, come si fa?

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    il debug in visual studio...
    ed un elemento selezionato della drop

  9. #9
    ok
    volendo inserire nel db un valore ID presente in una text box?

    codice:
    int id= Convert.ToInt32(textbox.Text);
    
    string insert = "INSERT INTO [Tabella] " +
     
    "([ID]) " +
     
    "VALUES " +
     
    "('" + id + "')" ;
     
    



    mi torna errore: Formato stringa di input non corretto
















  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    stai tentanto di incollare un Int32 ("id") ad una stringa....("insert").

    anche se tutto il modo e' sbagliato (compreso il fatto che l'ID dovrebbe essere il .value, non il .text), converti "id" in stringa.

    ma sai cosa e' il debug ?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.