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

    [VB.NET] Ottenere dati da DataGridView

    premetto che ho già provato a cercare risposta alla domanda che farò nel forum...

    ho un DataGridView con due colonne e n righe con dei dai dentro.

    questi dati (cella per cella) li devo processare.

    immagino di creare un ciclo while dove prelevo uno alla volta i dati contenuti nel DataGridView

    la domanda è: come faccio ad ottenere i dati che mi intesessano??
    se voglio assegnare ad una textbox il contenuto della cella (3° riga, 2° colonna) come faccio???

    per favore aiutatemi, perchè nella giuda msdn non sono riuscito a trovare quello che volevo

  2. #2
    scusa ma i dati alla grid come li assegni? attraverso un origine dati? se si ti basterebbe andarti a leggere l'origine dati (che per me credo sia + semplice) anzichè dalla grid.
    I database... la mia passione + o -

  3. #3
    no... i dati li infilo da tastiera... in realtà da un lettore barcode, che scrive nella grid per tenere i dati temporaneamente finchè non è ora di scriverli in sql server.

    immagino che il tutto sia un comanda del tipo datagridview.rows.item.... o qualcosa del genere!!!

  4. #4
    come li "infili" nella datagridview?

    datagridview.rows.add(new datagridviewrow(...)) ?

    potresti crearti una datatable ad hoc in cui inserire i dati e "bindarla" alla datagridview tramite un controllo binding source così quando aggiungi nuovi dati non devi smazzarti per aggiornare la datagridview e hai già pronta una struttura più adatta all'inserimento in sql server
    no pain no gain!

    ricordati che hai dei limiti...

  5. #5
    infatti, era la stessa cosa che pensavo io... metterli in un datatable, così hai una struttura già definita e pronta per essere salvata nel db.
    I database... la mia passione + o -

  6. #6
    il fatto è che sono abbastanza "crudo" di VB, e probabilmente ho capito il 10% di quello che avete detto.
    se magari me lo spiegate più terra-terra....

    a me piaceva tanto l'idea di prelevare i dati come volevo io anche se non conscio che probabilmente ci sono metodi più idonei per trattare questi dati.

    se mi spiegate, o mi dite qual'è il concetto, vedo se trovo qualcosa su msdn...

    ma cmq per curiosità... come si prelevano i valori delle celle da una DataGridView??

  7. #7
    per recuperare un dato da una cella ci puoi andare diretto diretto:

    in c# sono sicuro che ci arrivi con dataGridView.Rows[0].Cells[0].Value

    che tradotto in vb.net dovrebbe essere dataGridView(0,0).Value

    occhio che l'istruzione ti ritorna un tipo object, non una stringa o un intero. quindi:

    Dim valoreCella as int = (int)dataGridView(0,0).Value

    Dim valoreCella as string = dataGridView(0,0).Value.ToString

    [scusate se sto scrivendo minkiate in vb.net, una volta ci ho scritto qualcosa ma adesso uso soo c#]
    no pain no gain!

    ricordati che hai dei limiti...

  8. #8
    mitico!! ce l'ho fatta!!

    cmq... se qualcuno ha voglia di spiegarmi come fare nell'altro modo... volentieri... poter migliorare ed imparare è sempre bene!!

  9. #9
    facciamo così: da quel che ho capito hai una parte di codice che ti mette a disposizione i dati ricevuti da un barcode reader, presumibilmente una stringa o in intero (non so come funziona... ) più forse altri dati

    quello che ti serve è una datatable temporanea fatta su misura per la tua applicazione nella quale raccoglierai questi dati e dalla quale poi li riverserai in sql server

    tra la datagridview e la datatable poi un oggetto BindingSource che ti permette di evitare lo smazzamento del reload della griglia una volta che fai gli insert dentro la datatable

    nel caso poi ti servisse il BindingSource ti mette a disposizione la proprietà Filter per applicare filtri ai dati e il metodo RemoveFilter per togliere il filtro

    per fare una prova aggiungi l'evento Load ad una form di prova, una datagridview e un pulsante

    codice:
    Imports System.Data
    
    Public Class Form1
    
        Dim dt As DataTable = New DataTable()
        Dim bs As BindingSource = New BindingSource()
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Dim dc As DataColumn = New DataColumn("dato1", System.Type.GetType("System.String"))
            Me.dt.Columns.Add(dc)
            dc = New DataColumn("dato2", System.Type.GetType("System.String"))
            Me.dt.Columns.Add(dc)
    
            Me.bs.DataSource = Me.dt
            Me.DataGridView1.DataSource = Me.bs
    
        End Sub
    
        Private Sub LoadData(ByVal dato1 As String, ByVal dato2 As String)
            Me.dt.Rows.Add(dato1, dato2)
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim rnd As New Random()
            Me.LoadData(rnd.Next(0, 100), rnd.Next(0, 100))
        End Sub
    End Class
    no pain no gain!

    ricordati che hai dei limiti...

  10. #10
    buio totale.... :berto:

    mi sembra troppo incasinata come soluzione... o sono io tardo (opterei per la seconda ipotesi...)


    posso chiedere su questo stesso post come fare ad allineare a destri i dati delle celle di una colonna in particolare?? e se c'è un modo per formattare automaticamente la cella per visualizzare un prezzo con i due decimali senza dover scrivere un milione di righe??

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.