如何让表中零值在datagridview中显示为空?
建立一个datagridview绑定一个表,其中表中不同记录的一些字段数值为零。现在datagridview显示零值为“0.00”,如何使这些零值在datagridview中显示为空?
另,我耳朵表中数值字段为“货币”型,小数位数2位,为什么在datagridview中显示4位小数,如“0.0000” --------------------编程问答-------------------- datagridview 绑定的是datatable,你遍历datatable,遇到0就改成你要的格式就行了,然后重新绑定 --------------------编程问答--------------------
--------------------编程问答--------------------
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
if (Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) == 0)
e.Value = "";
}
}
datagridview的格式控制可以在CellFormatting写 --------------------编程问答-------------------- gridView事实上是个二维表,其中的任一个单元格都能取出来。
取出来格式化一下再存进去即可! --------------------编程问答-------------------- dataGridView1.Columns["金额"].DefaultCellStyle.NullValue = "";
初始值为空,不知道是不是这个意思? --------------------编程问答--------------------
顶 --------------------编程问答--------------------
试了一下,不行!
表中数值为“¥0.00”,
在datagridview 中显示的是“0.0000”。
再问一个问题,表中数值为“¥100.00”,
在datagridview 中显示的是“100”,我想显示为“100.00”,该怎么做?
--------------------编程问答-------------------- query db 拿到结果后,遍历时,判断如果为0,赋值 “”
有人民币的话,DataFormatString="{0:F2}"
--------------------编程问答-------------------- 测试数据,前台一个DataGridview控件
DataTable dt1 = new DataTable();
dt1.Columns.Add("col1", typeof(string));
dt1.Columns.Add("col2", typeof(decimal));
DataRow dr1 = dt1.NewRow();
dr1["col1"] = "NIKE";
dr1["col2"] = 115.00m;
DataRow dr2 = dt1.NewRow();
dr2["col1"] = "LiNing";
dr2["col2"] = 126.00m;
DataRow dr3 = dt1.NewRow();
dr3["col1"] = "Jordan";
dr3["col2"] = 191.00m;
DataRow dr4 = dt1.NewRow();
dr4["col1"] = "Kappa";
dr4["col2"] = 0.00m;
DataRow dr5 = dt1.NewRow();
dr5["col1"] = "Anta";
dr5["col2"] = 0.00m;
dt1.Rows.Add(dr1);
dt1.Rows.Add(dr2);
dt1.Rows.Add(dr3);
dt1.Rows.Add(dr4);
dt1.Rows.Add(dr5);
this.dataGridView1.DataSource = dt1;
--------------------编程问答--------------------
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
object value = dataGridView1.Rows[e.RowIndex].Cells["col2"].Value;
if (Convert.ToDecimal(value) == Convert.ToDecimal("0.00"))
{
// dataGridView1.Rows[e.RowIndex].Cells["col2"].ValueType = typeof(String);
e.Value = String.Empty;
}
}
}
DataGridView的列有Format属性的
--------------------编程问答-------------------- 在SQL里做手脚如:
select A.StudentNo, A.fenshu,
case Convert(nvarchar,A.fenshu)
when '0' then ''
end as FenShuStr
from A
结果如下
--------------------编程问答--------------------
select A.StudentNo, A.fenshu,
case Convert(nvarchar,A.fenshu)
when '0' then ''
else Convert(nvarchar,A.fenshu)
end as FenShuStr
from A
你可以加个else
结果如下:
--------------------编程问答-------------------- 疯掉了!
无论怎么试,数据库表中的“0.00”,在datagird中都显示为“0.00”,
而数据库表中的“1000.00”,只要小数部分全部为0的,在datagird中都显示为“1000”,
自动把零小数去掉了!晕1
补充:.NET技术 , C#