日期:2014-05-19  浏览次数:20457 次

System.Int32”对象转换“System.String”。 问题
我使用了一个objectdatasource绑定了gridview
使用删除的时候碰到了
类型“System.Int32”的对象无法转换为类型“System.String”。  
的问题,请问怎么解决?
objectdatasource的起始参数是这么写的
      <DeleteParameters>
                                <asp:Parameter   Name= "id "   Type= "String "   />
                        </DeleteParameters>

当触发删除时间的时候后置代码里是:
  protected   void   grv_RowDeleting(object   sender,   GridViewDeleteEventArgs   e)
        {
objectdatasource.DeleteParameters.Add( "id ",   grv.DataKeys[e.RowIndex].Value.ToString());
}

------解决方案--------------------
protected void grv_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
obj.DeleteParameters.Clear();
objectdatasource.DeleteParameters.Add( "id ",SqlDbType.VarChar,500);
objectdatasource.DeleteParameters[0].Value = grv.DataKeys[e.RowIndex].Value.ToString();
grv.DataBind();
}

这样试试看
------解决方案--------------------
protected void grv_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
obj.DeleteParameters.Clear();
objectdatasource.DeleteParameters.Add( "id ",SqlDbType.VarChar,500);
objectdatasource.DeleteParameters[0].Value = grv.DataKeys[e.RowIndex].Value.ToString();
grv.DataBind();
}

这样试试看

------解决方案--------------------
grv.DataKeys[e.RowIndex].Value 有没有值哦?