2011-09-11 4 views
5

J'ai un DataGridView que j'ai configuré dans un projet WinForms. Les colonnes sont toutes définies dans le fichier du concepteur. Quand je vais exécuter mon SQL, les colonnes de DataGridView sont remplacées par les noms des colonnes dans la requête. Comment puis-je conserver les colonnes telles que définies par DataGridView, et simplement ajouter les lignes de l'ensemble de données de l'ensemble de données à la GridView.DataSet vers DataGridView avec des colonnes prédéfinies

//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 

Répondre

6

Vous devez associer des colonnes dans votre DataTable avec des colonnes dans votre DataGridView. Pour ce faire, mettez à jour la propriété DataPropertyName d'une colonne DGV avec le nom de la colonne dans le DataTable que vous souhaitez afficher dans cette colonne DGV. Par exemple, définissez la propriété DataPropertyName dans votre DGV pour le numéro de compte sur acctNum. Notez que vous pouvez facilement le faire dans le concepteur à l'aide de la boîte de dialogue "Editer les colonnes" (ouvrez la boîte de dialogue en cliquant avec le bouton droit de votre DGV dans le concepteur et en sélectionnant "Modifier les colonnes ..." dans la fenêtre contextuelle).

Notez que vous devrez définir AutoGenerateColumns de votre DataGridView sur false pour l'empêcher de créer des colonnes par lui-même. Je crois que vous ne pouvez faire ce réglage que par le code.

Questions connexes