如何让表中零值在datagridview中显示为空?

zjdjh76 2012-03-21 08:26:37
建立一个datagridview绑定一个表,其中表中不同记录的一些字段数值为零。
现在datagridview显示零值为“0.00”,如何使这些零值在datagridview中显示为空?

另,我耳朵表中数值字段为“货币”型,小数位数2位,为什么在datagridview中显示4位小数,如“0.0000”
...全文
963 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-10-10
  • 打赏
  • 举报
回复
你从数据库中读出来直接放datatable里,datatable的columntype会自动根据数据库类型一致
於黾 2014-10-10
  • 打赏
  • 举报
回复
因为类型不同啊 字符串类型,当然后面有没有小数点和0,对字符串来说,都是同一个字符串,不可能省略掉的 而数字型,整数当然就把小数点后的0省略掉了 你新建个datatable,每个列都是字符串类型的,把数据datatable里的数据,循环添加到新建的datatable里,然后就可以想怎么处理就怎么处理了
XIHONGSHI238 2014-10-10
  • 打赏
  • 举报
回复
请问happy09li版主,在DataGridView的列Format属性中应该如何设置才能屏蔽掉0值呢?
熙风 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zjdjh76 的回复:]
引用 2 楼 bdmh 的回复:
C# code

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


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

DataGridView的列有Format属性的
EnForGrass 2012-03-22
  • 打赏
  • 举报
回复
测试数据,前台一个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;
}
}
}
zjdjh76 2012-03-22
  • 打赏
  • 举报
回复
疯掉了!
无论怎么试,数据库表中的“0.00”,在datagird中都显示为“0.00”,
而数据库表中的“1000.00”,只要小数部分全部为0的,在datagird中都显示为“1000”,
自动把零小数去掉了!晕1
壁橱里的老王 2012-03-22
  • 打赏
  • 举报
回复
query db 拿到结果后,遍历时,判断如果为0,赋值 “”
有人民币的话,DataFormatString="{0:F2}"
zhaokun521 2012-03-22
  • 打赏
  • 举报
回复
select A.StudentNo, A.fenshu,
case Convert(nvarchar,A.fenshu)
when '0' then ''
else Convert(nvarchar,A.fenshu)
end as FenShuStr
from A

你可以加个else
结果如下:
zhaokun521 2012-03-22
  • 打赏
  • 举报
回复
在SQL里做手脚如:

select A.StudentNo, A.fenshu,
case Convert(nvarchar,A.fenshu)
when '0' then ''
end as FenShuStr
from A

结果如下
jianhenjh 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
C# code


private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
if (Co……
[/Quote]
zjdjh76 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
C# code

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

试了一下,不行!
表中数值为“¥0.00”,
在datagridview 中显示的是“0.0000”。
再问一个问题,表中数值为“¥100.00”,
在datagridview 中显示的是“100”,我想显示为“100.00”,该怎么做?


  • 打赏
  • 举报
回复
dataGridView1.Columns["金额"].DefaultCellStyle.NullValue = "";
初始值为空,不知道是不是这个意思?
laichunlin 2012-03-21
  • 打赏
  • 举报
回复
gridView事实上是个二维表,其中的任一个单元格都能取出来。

取出来格式化一下再存进去即可!
EnForGrass 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 zjdjh76 的回复:]
建立一个datagridview绑定一个表,其中表中不同记录的一些字段数值为零。
现在datagridview显示零值为“0.00”,如何使这些零值在datagridview中显示为空?

另,我耳朵表中数值字段为“货币”型,小数位数2位,为什么在datagridview中显示4位小数,如“0.0000”
[/Quote]
datagridview的格式控制可以在CellFormatting写
bdmh 2012-03-21
  • 打赏
  • 举报
回复

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 = "";
}
}
深海之蓝 2012-03-21
  • 打赏
  • 举报
回复
datagridview 绑定的是datatable,你遍历datatable,遇到0就改成你要的格式就行了,然后重新绑定

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧