具有预定义列的DataSet到DataGridView

时间:2011-09-11 21:28:44

标签: c# winforms .net-3.5 datagridview

我有一个我在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

1 个答案:

答案 0 :(得分:8)

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

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

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