我正在开发一个窗口应用程序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();
}
答案 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;
}