DataGridView - how to set the currency format for

2019-01-25 23:06发布

问题:

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.

回答1:

You can set format of data of a column using Formatproperty of its DefalutCellStyle 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:

  • How to: Format Data in the Windows Forms DataGridView Control
  • Standard Numeric Format Strings - The Currency ("C") Format Specifier.


回答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.