2012-10-08 44 views
0
for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    //bool sleected = false; 

    if (dataGridView1.Rows[i].Cells[3].Value != null) 
    { 

     selected.Add(i); 
    } 

} 
//string donew = ""; 


// line off error 
textBox1.Text = ((String)dataGridView1.Rows[1].Cells[2].Value); 
/* for (int i = 0; i < selected.Count; i++) 
{ 

    textAdded.Add((String)dataGridView1.Rows[0].Cells[2].Value); 
// donew += (String)dataGridView1.Rows[selected[i]].Cells[2].Value; 
}*/ 

我不斷收到錯誤錯誤信息修正

無法轉換類型「System.Double」的對象爲類型「System.String」

我能做些什麼來克服這個?

回答

4

而是採用

textBox1.Text = ((String)dataGridView1.Rows[1].Cells[2].Value); 

使用

textBox1.Text = dataGridView1.Rows[1].Cells[2].Value.ToString(); 

的原因是,你在哪裏雙重試圖進行明確的轉換而強制轉換爲字符串不存在,但幸運的ToString()方法以字符串形式輸出數字。

0

您可以

dataGridView1.Rows[1].Cells[2].Value.ToString() 
1

嘗試此外,可以進一步細化,並與foreach循環清理。這會使得在許多情況下更容易閱讀。

此外,作爲一般慣例,請避免textBox1dataGridView1這些對象的類型名稱。現在應用特定的命名模式,以防止不必要的悲傷和後顧之憂。儘早進入是個好習慣。

foreach(DataGridViewRow r in dataGridView1.Rows) 
{ 
    if (r.Cells[3].Value != null) 
    { 
     selected.Add(r); 
    } 
} 
// line off error 
textBox1.Text = dataGridView1.Rows[1].Cells[2].Value.ToString();