如何在datagridview c#.net中显示空白而不是0

如何在datagridview c#.net中显示空白而不是0,c#,datagridview,C#,Datagridview,我正在开发一个窗口应用程序VisualStudio2010和SQLServer2008。我的代码运行良好。我只需要一件事,若数据库中的任何值是0.000,那个么它应该在DataGridView中显示为空。请给我一个解决方案。提前谢谢。代码如下: sda = new SqlDataAdapter("select Item, Cast (Val1 AS DECIMAL (10,3)), Cast (Val2 AS DECIMAL (10,2)), Cast (Val3 AS DECIMAL (10,

我正在开发一个窗口应用程序VisualStudio2010和SQLServer2008。我的代码运行良好。我只需要一件事,若数据库中的任何值是
0.000
,那个么它应该在
DataGridView
中显示为空。请给我一个解决方案。提前谢谢。代码如下:

sda = new SqlDataAdapter("select Item, Cast (Val1 AS DECIMAL (10,3)), Cast (Val2 AS DECIMAL (10,2)), Cast (Val3 AS DECIMAL (10,2)), Cast (Val4 AS DECIMAL (10,3)), sno from Opstk where Vno ='" + txtVno.Text + "'",  con);
        DataTable dt = new DataTable();
        sdaq.Fill(dt);

        dataGridView1.Rows.Clear();
        foreach (DataRow item in dt.Rows)
        {
            int n = dataGridView1.Rows.Add();
            dataGridView1.Rows[n].Cells[0].Value = item["Item"].ToString();
            dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
            dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
            dataGridView1.Rows[n].Cells[3].Value = item[3].ToString();
            dataGridView1.Rows[n].Cells[4].Value = item[4].ToString();
            dataGridView1.Rows[n].Cells[5].Value = item[5].ToString();

        }
您可以试试这个:
double value=Convert.ToDouble(项目[“项目”]);

dataGridView1.Rows[n]。单元格[0]。值=值==0?“”:value.ToString()但这是脏的,您应该调用
datagridView1.DataSource=yourDataTable

您只需为
DataGridView的
global
DefaultCellStyle
设置一个
格式,可能如下所示:

dataGridView1.DefaultCellStyle.Format = "###.##";
或者对于某一列中的某一列

dataGridView1.Columns[yourColumn].DefaultCellStyle.Format = "###.##";
注意但是,您添加的值不是数字而是字符串。这不一定是错误的,但它会阻止进行计算和其他事情。它还将阻止上述数字格式工作

将它们添加为数字(推荐)或仅在
ToString
功能中使用所需格式:

dataGridView1.Rows[n].Cells[1].Value = item[1].ToString("###.##");
但是再一次:现在这些数字已经丢失了,如果你想使用它们,你将不得不浪费时间


当然,如果网格单元的值为0,您可能希望选择其他..

,但不希望它显示0, 可以将单元格的值设置为DBNull.value

if( item[1] == 0 ) 
{
    dataGridView1.Rows[n].Cells[1].Value = DBNull.Value;
}
稍后,如果计算需要0值,可以反转

int myValue = 0;
if (dataGridView1.Rows[n].Cells[1].Value != DBNull.Value) 
    { myValue = dataGridView1.Rows[n].Cells[1].Value; }

另一种情况是,如果数据库中的值为0,则datagrid中的值应为空