Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    36

    [Newbie] Sostituire i dati in una colonna (datatable)

    Salve a tutti,
    Sono un programmatore senior in...ehm...vb6
    Ma da qualche giorno sto provando a cimentarmi con Vb2008..
    grazie alle conoscenze acquisite in passato sto procedendo abbastanza spedito
    ma mi sono bloccato su una cosa che davvero mi manda ai matti.
    (probabilmente perchè dataset, datatable, dataadapter e compagnia mi hanno veramente confuso...)

    Procedo: (faccio degli esempi, non è realmente la mia situazione)

    Sul form ho una Datagridview.
    Nel DB una tabella LAVORI con Idutente(di tipo int32) e "mestiere" (di tipo string)
    Un altra tabella ANAGRAFICA con IDutente (di tipo Int32) , e Nome (di tipo string)

    -> Riempio il mio dataset con il metodo Fill del dataadapter.
    Poi popolo la Grid. per visualizzare la tabella LAVORI.

    La grid chiaramente viene popolata cosi':
    1 FABBRO
    2 IDRAULICO
    3 ARCHITETTO


    Vorrei però che la grid si popolasse cosi':

    MARCO FABBRO
    GIANNI IDRAULICO
    LUCA ARCHITETTTO

    e ci siamo:
    Ho creato una funzione che passandole l'ID, restituisce Il nome dalla tabella anagrafica.
    immaginando di poter fare questo: (controllate all'interno del ciclo for).

    codice:
    Try             
    Dim id As Integer             
    Dim ds As New DataSet()             
    Dim da As New MySqlDataAdapter("SELECT id_utente,data_ins,titolo,testo FROM richieste where id_categoria=" & id_prima_categoria, conn)             
    da.Fill(ds, "richieste")             
    For i = 0 To ds.Tables("richieste").Rows.Count - 1                 
    id = ds.Tables("richieste").Rows(i)("id_utente")                 
    ds.Tables("richieste").Rows(i)("id_utente") = "utente"            
    Next              
    DataGridView1.DataSource = ds.Tables("richieste")              
    DataGridView1.Columns(0).Width = Int(DataGridView1.Width * 20) / 100
    DataGridView1.Columns(1).Width = Int(DataGridView1.Width * 20) / 100
    DataGridView1.Columns(2).Width = Int(DataGridView1.Width * 20) / 100
    DataGridView1.Columns(3).Width = Int(DataGridView1.Width * 40) / 100
    conn.Close()         
    Catch ex As Exception             
    MsgBox("Errore: " & ex.Message)             
    Me.Close()         
    End Try
    [Ho messo "UTENTE" al posto del risultato della funzione, per semplicità]

    di logica dovrebbe funzionare...
    tecnicamente però genera un errore di tipo "formato della stringa din input non corretto
    impossibile archiviare utente nella colonna id_utente .il tipo previsto è int_32.

    Sono esaurito...
    come risolvere?

    Dovrei forse eliminare la colonna id dal datatable e sostituirla con una colonna "nomi" generata a runtime?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.