-1

グリッドビューに「価格」セルの値を表示できません。コードは次のとおりです。

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」という名前のデータテーブルの新しいインスタンスを作成しました。この「価格」列を除いて、すべてのセル値が正しく表示されています。

4

1 に答える 1

0

価格列のデータ型はDecimalよりもDoubleである必要があります。このリンクをご覧ください。DecimalVsDouble

それが役立つことを願っています

于 2013-01-23T09:43:30.943 に答える