繁体   English   中英

C#报表编辑列值

[英]C# report edit column values

我正在基于数据库表生成报告。 在表中,我将性别保存为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文本框“颜色”的值表达式引用字段“ genderVerbose”。 报表项表达式只能引用当前数据集范围内的字段,或者如果引用了集合,则引用指定的数据集范围内的字段。 字段名称中的字母必须使用正确的大小写。

如何为单元格分配Enum值? 默认情况下, Enum.ToString()给出代码中的值名称作为字符串。 因此:

public enum Gender { Male, Female }

您只需将它们推入DataGridView单元中,它将以这种方式显示。 您可以通过以下方式测试值

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM