我有一个我在WinForms项目中设置的DataGridView。列都在设计器文件中定义。当我运行我的SQL时,DataGridView中的列将替换为查询中的列名称。
如何保持DataGridView定义的列,只需将数据集中的行从数据集添加到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
答案 0 :(得分:8)
您需要将DataTable中的列与DataGridView中的列相关联。
通过使用您希望在该DGV列中显示的DataTable中的列名更新DGV列的DataPropertyName
属性来执行此操作。例如,将您的DGV中的DataPropertyName
属性设置为acctNum
。请注意,您可以通过“编辑列”对话框轻松地在设计器中执行此操作(通过在设计器中右键单击DGV并从弹出窗口中选择“编辑列...”来启动对话框。)
请注意,您需要将DataGridView的AutoGenerateColumns
设置为false
,以防止它自行创建列。我相信你只能通过代码进行此设置。