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'
我能做些什么来克服这个问题?
答案 0 :(得分:4)
而不是使用
textBox1.Text = ((String)dataGridView1.Rows[1].Cells[2].Value);
使用
textBox1.Text = dataGridView1.Rows[1].Cells[2].Value.ToString();
原因是你尝试显式转换而不存在从double到string的转换,但幸运的是ToString()方法将数字输出为字符串。
答案 1 :(得分:1)
此外,您可以使用foreach
循环进一步优化和清理它。这使得在许多情况下更容易阅读。
此外,作为一般做法,请避免使用这些对象的textBox1
或dataGridView1
类型名称。现在应用特定的命名模式,防止不必要的悲伤和后来的担心。尽可能早地进入是个好习惯。
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();
答案 2 :(得分:0)
您可以尝试使用
dataGridView1.Rows[1].Cells[2].Value.ToString()