Selezionare riga da DataGridView

mercoledì 20 gennaio 2010 - 16.00

enrico.rm Profilo | Newbie

Ragazzi sto lavorando su una solution in windows form (C#) di Visual Studio 2008. Vorrei sapere se è possibile selezionare i valori della riga selezionata di un DataGridView. Questo è il codice che ho già scritto: (perdonate il codice spartano ma sono alle prime armi)


// Creo un DataSet (una cache) per memorizzare i dati da elaborare
DataSet objDataSet = new DataSet("utenti");

//apro la connessione
objSqlConnection.Open();

// Ora bisogna riempire la tabella
// comando SELECT * dalla tabella utenti...

strOrders = "SELECT * FROM ANDIP";
SqlCommand objOrderCommand = new SqlCommand(strOrders, objSqlConnection);
//int pippo = (int)objOrderCommand.ExecuteScalar();

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = objOrderCommand;
da.Fill(dt);
dataGridView_utenti.DataSource = dt;

Da qui dovrei implementare una funzione che mi permetta di reperire le informazioni dalla riga selezionata. Ho provato con questo, ma non si ferma al debug, quindi immagino non funzioni:

private void selectedRowsButton_Click(object sender, System.EventArgs e)
{
Int32 selectedRowCount =
dataGridView_utenti.Rows.GetRowCount(DataGridViewElementStates.Selected);
if (selectedRowCount > 0)
{
..............
}
}

Ringrazio tutti!

MarKonE Profilo | Guru

Ciao Enrico,

io tempo fa ho realizzato un programma che gestiva, a livello di singola cella, un DataGridView.

Posso postarti del codice però è in VB e non in C#.

Proviamo lo stesso o preferisci aspettare un C#GURU ?


Ciao!
My Blog... http://blogs.dotnethell.it/Mark/

enrico.rm Profilo | Newbie

Ciao MarKonE, ti ringrazio per avermi risposto. Se puoi postarlo te ne sarei grato, così provo ad adattarlo al mio programma. Poi se troviamo qualche Guru in C# è altro di guadagnato. Grazie ;-)

MarKonE Profilo | Guru

Recupero e posto tutto.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

MarKonE Profilo | Guru

Ad esempio, per recuperare il valore di una cella, vado a gestire l'evento RowEnter scatenato quando si clicca su una riga (Handles datagridview1.RowEnter)

Private Sub datagridview1_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles datagridview1.RowEnter
Me.datagridview1.Rows.Item(e.RowIndex).Cells("TPModel").Value.ToString
End Sub

Nel momento in cui clicchi una riga l'oggetto "e" contiene i riferimenti della riga "cliccata".

A quel punto, tramite la proprietà "e.RowIndex" , puoi ad esempio recuperare il valore della cella corrispondente alla riga cliccata ed alla colonna "TPModel" usando la sintassi indicata :
Me.datagridview1.Rows.Item(e.RowIndex).Cells("TPModel").Value.ToString

Spero di essermi spiegato in modo sufficientemente chiaro. Eventualmente fammi sapere se ti serve altro o cosa vorresti ottenere di preciso.

CIAOO!



My Blog... http://blogs.dotnethell.it/Mark/

MarKonE Profilo | Guru

Magari questo documento può esserti utile :

http://msdn.microsoft.com/it-it/library/system.windows.forms.datagridview.rowenter.aspx#Mtps_DropDownFilterText

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

enrico.rm Profilo | Newbie

MarKonE sei un grande!!! Ho preso spunto dal link che mi hai postato ed ho risolto così:


private void dataGridView_utenti_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
for (int i = 0; i < dataGridView_utenti.Rows[e.RowIndex].Cells.Count; i++)
{
//Se seleziono la cella del DataGridView
if (dataGridView_utenti[i, e.RowIndex].Selected == true)
{
//reperisco la matricola del dipendente (2 sta per la posizione in tabella della matricola)
string matricola = dataGridView_utenti[2, e.RowIndex].Value.ToString();

}
}


Quel "2" messo così fisso non mi piace, ma per ora funziona alla grande e ti ringrazio tantissimo!!
}

MarKonE Profilo | Guru

Ottimo !

Eventualmente su MSDN trovi altri esempi utili.

Per favore accetta una risposta così marchiamo il thread come chiuso.

CIAO!
My Blog... http://blogs.dotnethell.it/Mark/

enrico.rm Profilo | Newbie

Ok, accettata ;-) e grazie ancora

fradod Profilo | Newbie

datadridview1.CurrentRow.Cells[0].Value.ToString().Trim())
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5