c#报告编辑列值

本文关键字:编辑 报告 | 更新日期: 2023-09-27 18:19:03

我正在生成一个基于数据库表的报告。在表中,我将性别保存为0或1(男/女)。在报告中,我希望显示字符串值,而不是显示数字。我试着打乱代码,例如

this.ItemsTableAdapter.Fill(this.InventoryDataSet.Items);
foreach (DataRow row in this.InventoryDataSet.Items.Rows)
{
    if (row["gender"].ToString() == "0")
    {
        row["gender"] = "Male";
    }
}
this.reportViewer1.RefreshReport();

然而,这完全破坏了报告(没有显示数据)。我怎样才能实现我想要的?

[编辑]

我更接近于这个解决方案(我认为):

this.InventoryDataSet.Items.Columns.Add("genderVerbose", typeof(string));
foreach (DataRow row in this.InventoryDataSet.Items.Rows)
{
    if (row["gender"].ToString() == "0")
    {
        row["genderVerbose"] = "Male";
    }
}

然而,现在当我试图在报告中使用字段时,我得到了这个错误:

错误2文本框"color"的值表达式指的是场"genderVerbose"。报表项表达式只能引用字段在当前数据集范围内,如果在聚合中,指定的数据集范围。字段名称中的字母必须使用正确的情况。

c#报告编辑列值

如何将Enum值分配给单元格?默认情况下,Enum.ToString()将代码中的值名作为字符串提供。所以:

public enum Gender { Male, Female }

你可以把它们塞进DataGridView细胞,它就会显示出来。可以通过

测试值
if ((Gender)row["gender"].Value == Gender.Male)
{
    // do things...
}

如果您需要用户可选择,您可以使用DataGridViewComboBoxCell