【问题标题】:Input string was not in a correct format. (Editable Gridview)输入字符串的格式不正确。 (可编辑的网格视图)
【发布时间】:2014-04-24 05:55:26
【问题描述】:

每当我尝试在我的 gridview 中编辑信息时,它都会向我抛出这个错误......

这是我的行编辑代码

protected void GRDTech_RowEditing(object sender, GridViewEditEventArgs e)
{  
 GRDTech.EditRowStyle.BackColor = System.Drawing.Color.LightYellow;
 GRDTech.EditIndex = e.NewEditIndex;
 BindData();
}

这是我的代码:

 bool comparedResults = true;
TextBox txtAddFROMKMREAD = (TextBox)Default._def.GRDTech
    .FooterRow.FindControl("txtAddFROMKMREAD");
DropDownList drpPlateNum = (DropDownList)Default._def.GRDTech
    .FooterRow.FindControl("drpPlateNum");
string txt = txtAddFROMKMREAD.Text;
int readDepartureKM = Convert.ToInt32(txtAddFROMKMREAD.Text);

TextBox txtAddTOKMREADING = (TextBox)Default._def
    .GRDTech.FooterRow.FindControl("txtAddTOKMREADING");

int arrivalKMreading = Convert.ToInt32(txtAddTOKMREADING.Text);

comparedResults = (arrivalKMreading < readDepartureKM);

int readDepartureKM 部分不断给我一个错误,即输入字符串不正确。我该如何解决这个问题?

【问题讨论】:

  • 那么您要解析什么值?大概它不是一个有效的整数......
  • 我的文本框中的值,在我的数据库中,数据类型是 int 我不知道为什么它会给我这个错误
  • 也许该值实际上并没有正确地进入控件?或者它可能是数据库中的 NULL 值?您应该添加日志记录或在调试器中单步执行以查找您尝试解析的字符串。
  • 您检查过txtAddFROMKMREAD 是否为空吗?这一定是这里的情况。也很好奇,FooterRow 正在编辑什么?你没有EditItemTemplate吗?请也显示您的GridView 标记。
  • 它在我的数据库中有一个值。

标签: c# asp.net gridview


【解决方案1】:

您在txtAddTOKMREADING.Text 中的值似乎不是vlid integer(可能是空白?)。

当您不确定文本是否有效时(例如,当您使用textbox 来自用户的输入时),最好使用int.TryParse

来自int.TryParse的文档:

将数字的字符串表示形式转换为其 32 位有符号 整数等效。一个返回值表示是否转换 成功了。

int readDepartureKM ;
bool parsedSuccessfully = int.TryParse(txtAddFROMKMREAD.Text, out readDepartureKM )
if(parsedSuccessfully)
{
    //Do something with the value that is in readDepartureKM 
}
else
{
   //do something else (perhaps an error message?)
   string message =String.Format("'{0}' Is not a valid integer.",txtAddFROMKMREAD.Text);
}

【讨论】:

  • 我用了这段代码,我分配了一个消息框,提示错误,但也允许我编辑,所以或多或少我会使用这个..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2013-08-22
相关资源
最近更新 更多