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"。报表项表达式只能引用字段在当前数据集范围内,如果在聚合中,指定的数据集范围。字段名称中的字母必须使用正确的情况。
如何将Enum
值分配给单元格?默认情况下,Enum.ToString()
将代码中的值名作为字符串提供。所以:
public enum Gender { Male, Female }
你可以把它们塞进DataGridView
细胞,它就会显示出来。可以通过
if ((Gender)row["gender"].Value == Gender.Male)
{
// do things...
}
如果您需要用户可选择,您可以使用DataGridViewComboBoxCell
。