当前位置:编程学习 > C#/ASP.NET >>

如何让表中零值在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 = "";
            }
        }
--------------------编程问答--------------------
引用楼主 zjdjh76 的回复:
建立一个datagridview绑定一个表,其中表中不同记录的一些字段数值为零。
现在datagridview显示零值为“0.00”,如何使这些零值在datagridview中显示为空?

另,我耳朵表中数值字段为“货币”型,小数位数2位,为什么在datagridview中显示4位小数,如“0.0000”

datagridview的格式控制可以在CellFormatting写 --------------------编程问答-------------------- gridView事实上是个二维表,其中的任一个单元格都能取出来。

取出来格式化一下再存进去即可! --------------------编程问答-------------------- dataGridView1.Columns["金额"].DefaultCellStyle.NullValue = "";
初始值为空,不知道是不是这个意思? --------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
C# code


        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                if (Co……

顶 --------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
C# code

        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                if (Conv……


试了一下,不行!
表中数值为“¥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;
                }
            }
        }
--------------------编程问答--------------------
引用 7 楼 zjdjh76 的回复:
引用 2 楼 bdmh 的回复:
C# code

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
if (Conv……


试了一下,不行!
表中数值为“¥0.00”,
在data……


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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,