128 messaggi dal 14 luglio 2001
Salve a tutti,
vorrei sapere come fare a recuperare la chiave primaria di una tabella visualizzata in un datagrid. Ma è necessario che la colonna sia visualizzata nel datagrid, oppure esiste una proprietà come DataKeyField su asp.net?
Grazie ciao.

73 messaggi dal 28 gennaio 2003
La datatable ha una proprietà che è PrimaryKey
Devi creare un array di datacolumn, contenente le colonne che vuoi facciano parte della chiave. Dopodichè, associ questo array alla suddetta proprietà.
Una volta settata, la recuperi leggendo gli item dell'array restituito dalla proprietà.
128 messaggi dal 14 luglio 2001
Mi potresti gentilmente mostrare un breve esempio di come fare?

Grazie mille!
73 messaggi dal 28 gennaio 2003
Ecco qua due esempi: come settare le chiavi primarie, e come recuperarle (sono su msdn).

Private Sub GetPrimaryKeys(myTable As DataTable)
' Create the array for the columns.
Dim colArr() As DataColumn
colArr = myTable.PrimaryKey
' Get the number of elements in the array.
Console.WriteLine("Column Count: " & colArr.Length.ToString())
Dim i As Integer
For i = 0 To colArr.GetUpperBound(0)
Console.WriteLine(colArr(i).ColumnName & colArr(i).DataType.ToString())
Next i
End Sub

Private Sub SetPrimaryKeys()
' Create a new DataTable and set two DataColumn objects as primary keys.
Dim myTable As DataTable = new DataTable()
Dim keys(2) As DataColumn
Dim myColumn As DataColumn
' Create column 1.
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.ColumnName= "FirstName"
' Add the column to the DataTable.Columns collection.
myTable.Columns.Add(myColumn)
' Add the column to the array.
keys(0) = myColumn

' Create column 2 and add it to the array.
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.ColumnName = "LastName"
myTable.Columns.Add(myColumn)
' Add the column to the array.
keys(1) = myColumn
' Set the PrimaryKeys property to the array.
myTable.PrimaryKey = keys
End Sub

128 messaggi dal 14 luglio 2001
Ok grazie,
comunque il mio problema è quello di sapere quale record ha generato
l'evento es. doubleclick sulla riga del datagrid.
Grazie ancora.
Ciao
73 messaggi dal 28 gennaio 2003
usa questo evento: quando clicchi su una cella, puoi sapere in quale riga appartiene

Protected Sub Grid_CurCellChange(sender As Object, e As EventArgs) handles myDataGrid.CurrentCellChanged

'ottieni il numero di riga con la proprietà rownumber
myDataGrid.CurrentCell.RowNumber
MessageBox(myDataGrid.CurrentCell.RowNumber.tostring)

End Sub

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.