+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ListBox associazione dati da databse

  1. #1
    perla0279 non è in linea Scolaretto
    Post
    230

    ListBox associazione dati da databse

    Ciao
    ho creato un ListBox :
    codice:
    
    asp:ListBoxID="txtTipoIntervento"rows="5"SelectionMode="Multiple"runat="server"></asp:ListBox>
    
    vorrei associare da codice Vb i dati da database recuperati tramite una select da database.......solo che non riesco a farlo.......

  2. #2
    perla0279 non è in linea Scolaretto
    Post
    230
    mi sono dimenticata di dire che gli ho inseriti manualmente così....

    codice:
    
    PrivateSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    v_TipoIntervento.Items.Add(TipoIntervento)
    v_TipoIntervento.Items.Add(TipoIntervento)
    v_TipoIntervento.Items.Add(TipoIntervento)
    EndSub
    


    ma adesso volevo creare un comando da database.....



    Quote Originariamente inviato da perla0279 Visualizza il messaggio
    Ciao
    ho creato un ListBox :
    codice:
    asp:ListBoxID="txtTipoIntervento"rows="5"SelectionMode="Multiple"runat="server"></asp:ListBox>
    vorrei associare da codice Vb i dati da database recuperati tramite una select da database.......solo che non riesco a farlo.......

  3. #3
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Ciao,
    il popolamento di una ListBox non si discosta poi tanto da quello di una GridView o più semplicemente di una DropDownList in quanto tutti questi controlli presentano sia la property DataSource da settare con la sorgente dati e sia il metodo DataBind metodo da implementare per caricare le informazioni di una sorgente dati.
    Nel tuo caso specifico presumo avrai o dovrai avere una sorgente dati proveniente dal db(una DataTable per esempio)...giusto per darti un idea:
    codice:
    Private Sub BindList()
      Dim dtDati As DataTable = New DataTable
      dtDati.Columns.Add("ID", GetType(Integer))
      dtDati.Columns.Add("Description", GetType(String))
      Dim row As DataRow
      For i As Integer = 0 To 10
         row = dtDati.NewRow()
         row("ID") = i
         row("Description") = "Descrizione campo: " + i.ToString()
         dtDati.Rows.Add(row)
      Next
      lbTest.DataSource = dtDati
      lbTest.DataTextField = "Description"
      lbTest.DataValueField = "ID"
      lbTest.DataBind()
    End Sub
    ...in questo caso mi son costruito una DataTable a "manina" che viene assegnata alla property DataSource(stessa cosa devi fare te) e poi richiamo il metodo di Bind.
    PS: ma alle varie discussione come questa(una delle tante):
    [ASP.Net]repeater codice per riempire databinder
    non hai più risposto...che sò indicando se hai risolto se si come...lasciare ai posteri qualche info soprattutto in un forum tecnico è importante

  4. #4
    perla0279 non è in linea Scolaretto
    Post
    230
    Non ho più risposto perchè non ho provato...........cioè ho abbandonato il metodo riproponendomi di riprenderlo quando sarò un pò più brava con il codice........perchè anche se voi siete disponibilissimi e gentilissimi ad aiutarmi ci sono cose che non riesco a far funzianare....probabilmente è ancora troppo presto
    devo proma studiare ancora

    Quello comunque che risolvo poi lo inserisco nei post

    Quote Originariamente inviato da SignIn Visualizza il messaggio
    Ciao,
    il popolamento di una ListBox non si discosta poi tanto da quello di una GridView o più semplicemente di una DropDownList in quanto tutti questi controlli presentano sia la property DataSource da settare con la sorgente dati e sia il metodo DataBind metodo da implementare per caricare le informazioni di una sorgente dati.
    Nel tuo caso specifico presumo avrai o dovrai avere una sorgente dati proveniente dal db(una DataTable per esempio)...giusto per darti un idea:
    codice:
    Private Sub BindList()
      Dim dtDati As DataTable = New DataTable
      dtDati.Columns.Add("ID", GetType(Integer))
      dtDati.Columns.Add("Description", GetType(String))
      Dim row As DataRow
      For i As Integer = 0 To 10
         row = dtDati.NewRow()
         row("ID") = i
         row("Description") = "Descrizione campo: " + i.ToString()
         dtDati.Rows.Add(row)
      Next
      lbTest.DataSource = dtDati
      lbTest.DataTextField = "Description"
      lbTest.DataValueField = "ID"
      lbTest.DataBind()
    End Sub
    ...in questo caso mi son costruito una DataTable a "manina" che viene assegnata alla property DataSource(stessa cosa devi fare te) e poi richiamo il metodo di Bind.
    PS: ma alle varie discussione come questa(una delle tante):
    [ASP.Net]repeater codice per riempire databinder
    non hai più risposto...che sò indicando se hai risolto se si come...lasciare ai posteri qualche info soprattutto in un forum tecnico è importante

  5. #5
    perla0279 non è in linea Scolaretto
    Post
    230
    ciao

    grazie del post ma ho fatto in un'altra maniera........ (sinceramente copiata spudoratamente da un altro progetto )

    pagina liste da usare quando mi serviranno in tutto il progetto
    codice:
    
    Imports System.IO
    Module Liste
     
    PublicSub BindList(ByVal list As ListBox, ByVal objdb As System.Data.OleDb.OleDbConnection, ByVal tabella AsString, ByVal valueField AsString, ByVal textField AsString, OptionalByVal defaultIndex AsInteger = 0, OptionalByVal condizione AsString = "", OptionalByVal orderField AsString = "", OptionalByVal optSelect AsBoolean = False, OptionalByVal optTutti AsBoolean = False)
    Dim ds As DataSet = New DataSet
    Dim strSQL AsNew StringBuilder
    strSQL.Append("Select ")
    If textField <> orderField And orderField <> ""Then
    strSQL.Append(" " + orderField + ",")
    EndIf
    strSQL.Append(valueField + "," + textField + " from " + tabella)
    If condizione <> ""Then
    strSQL.Append(" " + condizione)
    EndIf
    If optSelect Then
    strSQL.Append(" UNION ")
    strSQL.Append("Select ")
    If textField <> orderField And orderField <> ""Then
    strSQL.Append(" '',")
    EndIf
    strSQL.Append(" '' as " + valueField + ",' SELEZIONA ' + '" + tabella + "' as " + textField)
    ElseIf optTutti Then
    strSQL.Append(" UNION ")
    strSQL.Append("Select ")
    If textField <> orderField And orderField <> ""Then
    strSQL.Append(" '',")
    EndIf
    strSQL.Append(" null as " + valueField + ",' Tutti ' as " + textField)
    EndIf
    If orderField <> ""Then
    strSQL.Append(" Order by " + orderField)
    EndIf
    Dim da AsNew OleDbDataAdapter(strSQL.ToString, objdb)
    da.Fill(ds, tabella)
    list.DataSource = ds.Tables(tabella).DefaultView
    list.DataTextField = textField
    list.DataValueField = valueField
    list.DataBind()
    list.SelectedIndex = defaultIndex
    EndSub
     
    EndModule
    

    controllo nella pagina
    codice:
    
    BindList(Me.txtTipointervento, objdb, "TIPOINTERVENTO", "codice", "intervento", 0, , "codice")
    

    anche se sono sicura che mi sono complicata la vita e che il metodo postato da SignIn era sicuramente più intuitivo........diciamo che questo lo trovato già fatto e funzionante.

  6. #6
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ..alla fine il metodo che ti ho postato era solo per evidenziare le ultime 4 linee di codice...se ci fai caso prendi le tue 4 linee di codice:
    codice:
    list.DataSource = ds.Tables(tabella).DefaultView
    list.DataTextField = textField
    list.DataValueField = valueField
    list.DataBind()
    noterai la presenza dei metodi/property importanti DataSource e DataBind di cui parlavo nel mio esempio...nel resto del mio esempio cioè quando popolo una DataTable non serve a nulla, mi serviva solo per mostrarti un esempio funzionante niente di più.......poi si può discutere sul codice che hai usato per creare lo statement(cioè la select con l'uso di append su un oggetto StringBuilder), infatti tempo fa in un altro post ti spiegavo perchè "non è bello"(meglio dire non è sicuro) concatenare come hai fatto te ma questo è un altro discorso:
    [ASP.Net]Richiamare testi da un database per inserirli in un FormView

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi