DataGridView - 如何仅为单个列设置货币格式

Bre*_*don 4 c# sql t-sql datagridview winforms

我正在尝试将datagridview用于购物篮.我有它显示客户的篮子,但我希望它显示价格列的货币,但我也有一个数量列,所以如果我把默认样式作为货币,那么它将更改两个列货币格式.

我想要做的是将货币格式添加到价格列,但不添加到数量列.

这是显示购物篮的代码(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;
        }
Run Code Online (Sandbox Code Playgroud)

CustomerId是从存储CustomerId的txt文件中收集的.

如果您想要查看更多代码然后发表评论,我将添加它.

这是我在表单上添加货币作为样式. 在此输入图像描述

Rez*_*aei 9

您可以使用列Format属性的DefaultCellStyle属性设置列的数据格式.

例如,要将货币格式用于DataGridView使用当前文化的第二列,您可以使用以下代码:

grid1.Columns[1].DefaultCellStyle.Format = "c";
Run Code Online (Sandbox Code Playgroud)

或者例如使用特定的文化和特定的十进制数:

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

更多信息: