在实际应用中,需要动态根据程序执行中的数据显示不同数据表中的数据,两个表中的数据列有一些并不相同,因此不能使用相同的数据列显示。
如何动态修改数据源并显示如来?经过测试,可以在每次绑定之前先清空所有数据列,然后根据数据源的信息让程序自动再生成数据列。
private void bindDGVContractDetail(int cId)
{
ucdgvContractDetail.Columns.Clear();
string strSqlDetail = "";
if (!type.Text.Contains("basis"))
{
strSqlDetail = "SELECT [id] ,[contractId] ,[getGoodsFacId] ,[type]
FROM [vContractDetailLinkDeliverySumCN]
Where contractId=" + cId + " order by id desc";
ContractDetailAdd.Enabled = upeReturn.AddPermission;
DataSet ds = new CommonDataSet().GetDataSet(strSqlDetail);
ucdgvContractDetail.DataSource = ds.Tables[0].DefaultView;
ucdgvContractDetail.AutoGenerateColumns = true;
ucdgvContractDetail.Columns[1].Frozen = true;
}
else
{
strSqlDetail = @"SELECT [id] ,[contractId] ,[getGoodsFacId] ,[sonContractId] ,[sellerId] ,[buyerId] ,[goodsId]
FROM vContractBasisDetailLinkDeliverySumCN
Where contractId=" + cId + " Order by id desc";
ContractDetailAdd.Enabled = false;
DataSet ds2 = new CommonDataSet().GetDataSet(strSqlDetail);
ucdgvContractDetail.DataSource = ds2.Tables[0].DefaultView;
ucdgvContractDetail.AutoGenerateColumns = true;
}
}