2013-07-05 28 views
0

我有機管局網頁表單該更新一個數據庫表,有錯誤「輸入字符串的不正確的格式」提交表單更新的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

你需要確保ddl.SelectedValue設置參數

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

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

在綁定DropDownList4化妝整場作爲它的價值成員之前返回正確的整數值。