在尝试使用C#.net将gridviewrow.cells值的值转换为int32时遇到问题。请考虑以下编码。
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("studentid",typeof(Int32)));
dt.Columns.Add(new DataColumn("Name",typeof(string)));
foreach (GridViewRow row in GridView1.Rows)
{
DataRow dr;
dr = dt.NewRow();
CheckBox cb = (CheckBox)row.FindControl("Chkgridselect");
if ( cb.Checked)
{
//Error occurs in the following line when i try to typecast
dr["studentid"] =Convert.ToInt32( row.Cells[1]);
dr["Name"] = row.Cells[2];
dt.Rows.Add(dr);
}
}
答案 0 :(得分:2)
只是在没有更多信息的黑暗中刺伤。但试试:
int myValue;
if (!int.TryParse(myGridViewRow.Cells[i].Text, out myValue)
//do something, your value is not an int
答案 1 :(得分:1)
int result;
result = int.Parse(value);
// OR
result = Convert.Int32(value);
答案 2 :(得分:1)
添加一些代码会有所帮助,但我会采取刺激并说试试这个:
int myVal = Int32.Parse(GridViewRow.Cells[i].Text);
答案 3 :(得分:0)
DataGridViewCell具有Value属性。
....
dr["studentid"] = Convert.ToInt32(row.Cells[1].Value);
....