2013-07-05 5 views
0

db 테이블을 업데이트하는 webform이 있습니다. 양식을 제출 한 후 "입력 문자열이 올바른 형식이 아닙니다"오류가 발생했습니다.Int32 열을 업데이트하면 "입력 문자열이 올바른 형식이 아닙니다."

nodeDetails.cs

protected void SqlDataSource_Updating(object sender, SqlDataSourceCommandEventArgs e) 
{ 
    DropDownList ddl = (DropDownList)(DetailsView1.Rows[0].FindControl("DropDownList4")); 
    DataRowView dr = (DataRowView)DetailsView1.DataItem; 

    e.Command.Parameters["@parent_id"].Value = ddl.SelectedValue; 

} 

nodeDetails.aspx 일부 코드

UpdateCommand="UPDATE [node] SET [title] = @title, [parent_id] = @parent_id, [oid] = @oid, [display] = @display, [linkById] = @linkById, [showContent] = @showContent, [customLinks] = @customLinks, [contentType] = @contentType WHERE [id] = @id" 

    <UpdateParameters> 
     <asp:Parameter Name="title" Type="String" /> 
     <asp:Parameter Name="parent_id" Type="Int32" /> 
     <asp:Parameter Name="oid" Type="Int32" /> 
     <asp:Parameter Name="display" Type="Byte" /> 
     <asp:Parameter Name="linkById" Type="Byte" /> 
     <asp:Parameter Name="showContent" Type="Byte" /> 
     <asp:Parameter Name="customLinks" Type="String" /> 
     <asp:Parameter Name="contentType" Type="String" /> 
     <asp:Parameter Name="id" Type="Int32" /> 
    </UpdateParameters> 

오류가 e.Command.Parameters 의해 발생한다 [ "@ PARENT_ID"η] = ddl.SelectedValue.;

누구든지 무슨 문제인지 알고 계십니까?

+0

데이터 형식이 잘못 되었습니까? –

답변

1

당신은 당신이 그것의 가치 멤버로 DropDownList4 메이크업 정수 필드를 바인딩 할 때

DropDownList ddl = (DropDownList)(DetailsView1.Rows[0].FindControl("DropDownList4")); 

int val; 
if(int.TryParse(ddl.SelectedValue, out val) 
{ 
    e.Command.Parameters["@parent_id"].Value = val; 
} 

매개 변수

를 설정하기 전에 올바른 정수 값을 반환 ddl.SelectedValue 있는지 확인해야합니다.

관련 문제