具有预定义列的DataSet到DataGridView

Sco*_*ott 5 c# datagridview .net-3.5 winforms

我有一个我在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
Run Code Online (Sandbox Code Playgroud)

Jay*_*ggs 8

您需要将DataTable中的列与DataGridView中的列相关联.

通过DataPropertyName使用您希望在该DGV列中显示的DataTable中的列名更新DGV列的属性来执行此操作.例如,DataPropertyName在您的DGV中为帐号设置属性acctNum.请注意,您可以通过"编辑列"对话框轻松地在设计器中执行此操作(通过在设计器中右键单击DGV并从弹出窗口中选择"编辑列..."来启动对话框).

请注意,您需要将DataGridView设置AutoGenerateColumnsfalse以防止它自己创建列.我相信你只能通过代码进行此设置.