如何更改数据集值并将其传递给数据透视表

时间:2012-03-01 11:08:12

标签: c# datatable dataset pivot

我有一个带有TableAdapter的数据集,当我说这样的话时

this.medicineDatasetTableAdapter.Fill(this.statisticsDataset.MedicineDataset);

它给我带来了数据库的所有结果,并使用DevExpress控件的一个数据透视显示它们。 我使用sqlite作为数据库,我存储在一个提交的日期时间,例如'1/4/2012'作为字符串,何时是从枢轴显示的时间与分组作为DateMonth或任何..没有任何显示。我认为枢轴不理解分组日期的格式.. 现在,我尝试使用GetData命令从DataSet获取DataTable,并将日期时间更改为正确的日期,并使用正确的日期结果再次填充它。 我试过的一种方式就像

StatisticsDataset.MedicineDatasetDataTable datatable = this.medicineDatasetTableAdapter.GetData();

DataTable a = this.medicineDatasetTableAdapter.GetData();

foreach (DataRow row in a.Rows)
{
    DateTime tempDate = DateTime.ParseExact(row.ItemArray[4].ToString(), Resources.ShortDateFormat, new CultureInfo(Resources.CurrentCulture));
                row[4] = tempDate;
            }
            this.statisticsDataset.MedicineDataset = a;
            //this.medicineDatasetTableAdapter.Fill(this.statisticsDataset.MedicineDataset);
            this.medicineDatasetTableAdapter.Fill((MedExpress.Dataset.StatisticsDataset.MedicineDatasetDataTable)a);

但它不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

当然似乎是一个类型问题。

查看您从“文本”单元格中获取数据的代码,将其转换为DateTime,然后将值复制回相同的“文本”单元格(这会将值转换回字符串!) 。我建议要么......

  • 为您的MedicineDatasetDataTable创建一个新的强类型DateTime单元格,并将解析后的值复制到该单元格中。

  • 为什么要将DateTime值存储为字符串,几乎所有数据库产品(抱歉我从未使用过SQLLite)都支持这种数据类型,而在强类型场景中,则无需转换值。