[英]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.