Input string was not in a correct format. 
运行程序,在gridview里,我点更新按钮,然后完成更新后,再点更新保存数据,就出现这样的错误。(PS:我没有进行数据修改,直接点更新保存数据也会这样的错误)。存储过程和数据库我已经查过了,没有错误啊,如果是字段的格式问题,应该是出现在数据库和存储过程里的吧?调试的时候出现这样的错误:Failed to convert parameter value from a String to a Int32.
出现错误的语句是:tempInt = exSqlCmd.ExecuteNonQuery();
这个是我数据操作类里的东西。添加功能已经实现,所以应该不是这段代码的问题吧?(我定义一个数据操作类,然后更新,添加都是继承这个类的。)请高手指点下,我什么地方没有考虑到,或者是这个问题最可能出现的是什么原因。。谢谢大家赐教。

解决方案 »

  1.   

    意思就是 
    string 转换成 int的时候报错了.
    你找到出错的那行看看就知道了.
      

  2.   

    出现错误的语句是:tempInt = exSqlCmd.ExecuteNonQuery();
    这个就是出错的语句么..只是我觉得在add里面可以正确的话,应该错误就不是发生在这里吧?
    因为我同样是通过这个类的...
      

  3.   

    不在这里,应该是参数的类型和值不一致.检查一下command的所有 int类型的参数的值.
      

  4.   

    应该是int类型的参数,你从GridView中输入了一个不符合整数类型格式的字符串
      

  5.   

    回复Ivy_zheng:
    int index = GridView1.EditIndex;我只用了这句进行整型输入啊
    但是这个是读取某行的ID的
    不会是这个的问题吧?
    但是我调试的时候这步平稳过渡。。貌似没有出错的
      

  6.   

    protected void TrainerMgmt_update(object sender, GridViewUpdateEventArgs e)
        {
            int index = GridView1.EditIndex;
            string trainername = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TrainerName")).Text;
            UpdateRecords();//这个是处理的函数就是继承了数据处理类,然后调用这个数据进行更新。
            GridView1.EditIndex = -1;
            BindGrid();
        }
    这个是定义获取的值
      

  7.   

    string 转换成 int的时候报错了.应该不是数据库操作类的问题 .
      

  8.   

    第一:检查你的程序与数据库的格式是否都是一样的,例如一个是INT,一个是String,这种出错我觉得就不应该犯第二:传入的参数与你的程序中的参数列表或在方法体内转型是否可以成功
      

  9.   

    string.format({0}...看看这些是不是写错了。