C# 动态修改DataGridView数据源,根据不同条件显示不同数据(代码)

在实际应用中,需要动态根据程序执行中的数据显示不同数据表中的数据,两个表中的数据列有一些并不相同,因此不能使用相同的数据列显示。

如何动态修改数据源并显示如来?经过测试,可以在每次绑定之前先清空所有数据列,然后根据数据源的信息让程序自动再生成数据列。

        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;
             }
        }

你可能感兴趣的:(.Net技术)