首页 > 解决方案 > C# 将 Double 从 DataGridView 转换为字符串

问题描述

40在我的按钮单击时,当被替换的值只是一个数字(例如)并且它被替换为字符串(例如)时,我收到以下错误AB123

System.Exception:AB123 不是 Double 的有效值。--->

System.FormatException:输入字符串的格式不正确。

在 System.Number.ParseDouble(字符串值,NumberStyles 选项,NumberFormatInfo numfmt)

按钮点击:

    private void button2_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < dataGridView1.RowCount; i++)
        {
            if (!RowIsEmpty(i))
            {
                dataGridView1[3, i].Value = Combo.Text;
            }
        }
    }

我尝试过像这样隐式转换:

dataGridView1[3, i].Value.ToString() = Combo.Text;

但这不起作用,我也尝试将其称为字符串,如下所示:

    private void button2_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < dataGridView1.RowCount; i++)
        {
            if (!RowIsEmpty(i))
            {
                string DGVS = dataGridView1[3, i].Value.ToString();
                DGVS =  Combo.Text;
            }
        }
    }

但这并没有给出错误,但实际上并没有做任何事情。

数据是从 excel 文件中加载的。

例子

Col1  Col2  Col3
AAA   BBB   40

组合框:

ABC123

标签: c#winformsdatagridview

解决方案


好的,我想我找到了解决方案:

double price;
bool isDouble = Double.TryParse(textBox1.Text, out price);
if (isDouble)
{
     Convert.ToDouble(textBox1.Text);
     dataGridView1[0, 0].Value = textBox1.Text;
}
else
{
     dataGridView1[0, 0].Value = textBox1.Text;
}

基本上,首先检查文本框是否为双精度。如果是 double,则转换为 double 并将其添加到 DGV。如果是字符串,只需将字符串添加到 DGV 中即可。

测试:

TextBox1.Text = AAA; //worked
TextBox1.Text = BBB; //worked
TextBox1.Text = 40; //worked
TextBox1.Text = 40.00; //worked
TextBox1.Text = 42,20; //worked

推荐阅读