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

3 回答 3

4

而不是使用

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

利用

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

原因是您尝试显式转换,而从 double 到 string 的转换不存在,但幸运的是 ToString() 方法将数字输出为字符串。

于 2012-10-08T15:34:44.847 回答
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();
于 2012-10-08T15:45:04.747 回答
0

你可以试试

dataGridView1.Rows[1].Cells[2].Value.ToString()
于 2012-10-08T15:36:48.467 回答