当我输入文本框(tAge)时,我正在尝试更新gridview中某个人的记录,它显示异常输入字符串的格式不正确。我尝试过很多次代码,但不会工作,请帮助我。并提前谢谢。 这是我更新人员详细信息的代码
protected void UpdateRecord(object sender, GridViewUpdateEventArgs e)
{
int personID = Int32.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
int intResult = 0;
GridViewRow row = GridView1.Rows[e.RowIndex];
TextBox tFN = (TextBox)row.FindControl("txtFName");
TextBox tLN = (TextBox)row.FindControl("txtLName");
TextBox tAge = (TextBox)row.FindControl("txtAge");
// instantiate BAL
PersonBAL pBAL = new PersonBAL();
PersonBO person = new PersonBO();
try
{
person.PersonID = personID;
person.FirstName = tFN.Text;
person.LastName = tLN.Text;
person.Age = Int32.Parse(tAge.Text);
//if (String.IsNullOrEmpty(String.Trim(tFN.Text)))
if (tFN.Text.Trim() == "")
{
lblMessage.Text = "Name can't be Blank";
}
else if (tLN.Text.Trim() == "")
{
lblMessage.Text = "LastName can't be Blank";
}
else if (tAge.Text.Trim()=="")
{
lblMessage.Text = "Age can't be Blank";
}
else
{
intResult = pBAL.Update(person);
if (intResult > 0 && tFN.Text != "")
{
string message = "Updated Successfully!";
string script = "window.onload = function(){ alert('";
script += message;
script += "');";
script += "window.location = '";
script += Request.Url.AbsoluteUri;
script += "'; }";
ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
}
//else if( tFN.Text == "")
//{
//}
else
{
string message = "Already Exist!";
string script = "window.onload = function(){ alert('";
script += message;
script += "');";
script += "window.location = '";
script += Request.Url.AbsoluteUri;
script += "'; }";
ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
//lblMessage.Text = message.ToString();
}
}
}
catch (Exception ee)
{
lblMessage.Text = ee.Message.ToString();
}
finally
{
person = null;
pBAL = null;
}
GridView1.EditIndex = -1;
// Refresh the list
BindGrid();
}
答案 0 :(得分:0)
我建议先检查Text
属性,然后再将其分配给相应的值。对于转换,存在一个很好的方法TryParse
它返回一个bool
,并且只有在格式正确时才会解析。
try
{
// ask whether it is blank or full of spaces
if (string.IsNullOrWhiteSpace(tFN.Text))
{
lblMessage.Text = "Name can't be Blank";
}
else
{
person.FirstName = tFN.Text;
}
// do the same again for the last name
if (string.IsNullOrWhiteSpace(tLN.Text))
{
lblMessage.Text = "Name can't be Blank";
}
else
{
person.FirstName = tLN.Text;
}
// use TryParse for the age
int p_age;
if (Int.TryParse(tAge.Text, out p_age))
{
person.Age = p_age;
}
else
{
lblMessage.Text = "Age is in incorrect Format";
}
....