在DataGridview C#中看不到单元格的十进制值

时间:2013-01-23 09:39:43

标签: c# datagridview

我无法在gridview上显示“Price”单元格的值,这是我的代码:

DataColumn idCol2 = new DataColumn();
        idCol2.DataType = System.Type.GetType("System.Int32");
        idCol2.ColumnName = "Id";
        table.Columns.Add(idCol2);

        DataColumn SKUCol2 = new DataColumn();
        SKUCol2.DataType = System.Type.GetType("System.String");
        SKUCol2.ColumnName = "SKU";
        table.Columns.Add(SKUCol2);

        DataColumn ProdNameCol2 = new DataColumn();
        ProdNameCol2.DataType = System.Type.GetType("System.String");
        ProdNameCol2.ColumnName = "Product Name";
        table.Columns.Add(ProdNameCol2);

        DataColumn DescCol2 = new DataColumn();
        DescCol2.DataType = System.Type.GetType("System.String");
        DescCol2.ColumnName = "Product Description";
        table.Columns.Add(DescCol2);

        DataColumn PriceCol2 = new DataColumn();
        PriceCol2.DataType = System.Type.GetType("System.Decimal");
        PriceCol2.ColumnName = "Price";
        table.Columns.Add(PriceCol2);

        DataColumn[] keys2 = new DataColumn[5];
        keys2[0] = idCol2;
        table.PrimaryKey = keys2;

        LivePOS livepos = new LivePOS(clientId, clientSecret);
        _products = livepos.GetProducts(apiKey, token);

        foreach (var p in _products)
        {
            table.Rows.Add(p.Id, p.Sku, p.Name, p.Description , p.SellingPrice);
        }

        table.DefaultView.Sort = "Id ASC";
        dataGridView1.DataSource = table;
        this.dataGridView1.DefaultCellStyle.Format = "N4";

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {

            row.Cells[0].ReadOnly = false; //id

            row.Cells[1].ReadOnly = true; //sku
            row.Cells[2].ReadOnly = true; //name
            row.Cells[3].ReadOnly = true; //description
        }

请帮助我:)这段代码有什么问题吗?我在Form_Load事件上创建了名为“table”的新数据表实例。除“此价格”列外,所有单元格值都正确显示。

1 个答案:

答案 0 :(得分:0)

您的价格列应该具有双倍于十进制的数据类型。请查看此链接 Decimal Vs Double

希望有所帮助