DataGridView - how to set the currency format for a single column ONLY

25,741

Solution 1

You can set format of data of a column using Format property of its DefaultCellStyle property of the column.

For example to use currency format for second column of a DataGridView using current culture, you can use such code:

grid1.Columns[1].DefaultCellStyle.Format = "c";

Or for example to use an specific culture and specific decimal numbers:

grid1.Columns[1].DefaultCellStyle.Format = "c2";
grid1.Columns[1].DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("en-GB");

More Information

Note

If you are using an object data source, then you can use the following approaches as well. The Foundation is same, setting suitable format for the column, but using attributes:

Solution 2

Create DataGridView columns at design time and sets the price only format the Current Price column Datagridview tutorial

Set DateTime format in DataGridView This link is seen as setting the date format, just change the date format for the currency format.

Share:
25,741
Brendon
Author by

Brendon

Updated on September 21, 2020

Comments

  • Brendon
    Brendon over 3 years

    I am trying to use the datagridview for a basket. I have got it to display the basket of the customer but I would like it to display the currency for the Price column, but i have a Quantity column as well, so if I put the default style as currency then it will change both columns to the currency format.

    What I want to be able to do is add the currency format to the Price Column but not to the quantity column.

    Here is the code that displays the basket (Form_load)

    using (var con = new SqlConnection(connectionString))
            {
                SqlDataAdapter dataadapter =
              new SqlDataAdapter(
                  "select p.productname 'Product Name', b.productquantity 'Quantity', c.categoryname 'Category', p.price 'Current Price' " +
                  "from basket b join products p on b.productid = p.productid " +
                  "join Categories c on c.categoryid = p.categoryid " +
                  $"where b.customerid = {CustomerId}", con);
    
                DataSet ds = new DataSet();
                con.Open();
                dataadapter.Fill(ds);
                con.Close();
                dataGridView1.DataSource = ds.Tables[0].DefaultView;
            }
    

    The CustomerId is collected from a txt file that stores the CustomerId when they log in.

    If there is any more code that you would like to see then comment and i will add it.

    This is what i get on the form with the currency added as the style. enter image description here

  • Brendon
    Brendon about 8 years
    How may i got about do that, as i haven't done so before?