2011-09-11 3 views
5

Ho un DataGridView che ho installato in un progetto WinForms. Le colonne sono tutte definite nel file di progettazione. Quando vado a eseguire il mio SQL, le colonne in DataGridView vengono sostituite con i nomi delle colonne nella query.DataSet to DataGridView con colonne predefinite

Come mantenere le colonne definite da DataGridView e aggiungere semplicemente le righe dall'insieme di dati dall'insieme di dati a GridView.

//Columns as they appear in the DataGridView 
Name | Address | City | State | Zip | Account Num | 

//Populate the gridView 
DataSet ds = Account.search(strSearch); 
accountGrid.DataSource = ds.Tables[0]; 

//query 
string sql = "SELECT distinct acctNum, name, address, city, state, zip from accounts"; 
return DataService.GetDataSet(sql); 

//The End Result of the columns 
acctNum | name | address |city | state | zip 

risposta

6

È necessario associare le colonne nel DataTable con le colonne in DataGridView.

Effettuare questa operazione aggiornando la proprietà DataPropertyName di una colonna DGV con il nome della colonna nel DataTable che si desidera visualizzare nella colonna DGV. Ad esempio, impostare la proprietà DataPropertyName nel DGV per il numero di account su acctNum. Nota che puoi farlo facilmente nella finestra di progettazione tramite la finestra di dialogo "Modifica colonne" (porta la finestra di dialogo facendo clic con il pulsante destro del mouse su DGV nel designer e selezionando "Modifica colonne ..." dal menu a comparsa).

Nota che è necessario impostare lo AutoGenerateColumns di DataGridView su false per impedire che crei le colonne da solo. Credo che tu possa solo rendere questa impostazione attraverso il codice.