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

时间:2016-05-09 09:34:53

标签: c# datagridview

我正在开发一个窗口应用程序Visual Studio 2010和SQL Server 2008.我的代码工作正常。我只需要一件事,如果数据库中的任何值为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();

        }

3 个答案:

答案 0 :(得分:0)

你可以试试这个:
double value = Convert.ToDouble(item["Item"]); dataGridView1.Rows[n].Cells[0].Value = value == 0 ? "" : value.ToString();但这很脏,你应该致电datagridView1.DataSource = yourDataTable;

答案 1 :(得分:0)

您需要做的就是为Format全球DataGridView's设置DefaultCellStyle,也许是这样:

dataGridView1.DefaultCellStyle.Format = "###.##";

或某列的

dataGridView1.Columns[yourColumn].DefaultCellStyle.Format = "###.##";

注意但是您要将值添加为数字而不是字符串。这不一定是错的,但它会阻止进行计算和其他事情。它还会阻止像上面这样的数字格式工作。

将它们添加为数字(推荐)或只是在ToString函数中使用您想要的格式:

dataGridView1.Rows[n].Cells[1].Value = item[1].ToString("###.##");

但又一次:现在这些数字已经丢失,如果你想使用它们,你将不得不浪费时间。

当然,您可能想要选择其他numeric format string ..

答案 2 :(得分:0)

如果网格单元格的值为0,但您不希望它显示0, 您可以将单元格的值设置为DBNull.Value

Node *removeNode(Node *head, int d)
{
    Node *curr = head;
    while (curr != NULL){
        if (curr->data == d){
            if (curr->prev == NULL && curr->next == NULL){
                free(curr);
                head = NULL;
                return head;
            } else if (curr->prev == NULL){
                curr->next->prev = NULL;
                head = curr->next;
                free(curr);
                return head;
            } else if (curr->next == NULL){
                curr->prev->next = NULL;
                free(curr);
                return head;
            } else if (curr->prev != NULL && curr->next != NULL){
                curr->next->prev = curr->prev;
                curr->prev->next = curr->next;
                free(curr);
                return head;
            }
        } else if (curr->data != d){
            curr = curr->next;
        }           
    }
    return head;
}

稍后,如果您需要0值进行计算,则可以反转

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