簡體   English   中英

C# 從 DataGridView 將 Double 轉換為字符串

[英]C# Convert Double to a string from a 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

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

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

我通過在加載到 datagridview 之后但在將組合框值更新到行之前刪除並重新添加列來解決這個問題(可能不是最好的方法,但它有效)。

private void button2_Click(object sender, EventArgs e)
{
    DataGridViewTextBoxColumn Column3New = new DataGridViewTextBoxColumn();
    Column3New.Name = "Column3";
    Column3New.HeaderText = "Column3";
    dataGridView1.Columns.RemoveAt(3);
    dataGridView1.Columns.Insert(3, Column3New);
    for (int i = 0; i < dataGridView1.RowCount; i++)
    {
        if (!RowIsEmpty(i))
        {
            dataGridView1[3, i].Value = Combo.Text;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM