c#error - 输入字符串的格式不正确

时间:2013-11-01 00:22:58

标签: c# asp.net

感谢非常有用的答案,我能够修改我的页面,以便我的下拉框正确地使用我的SQL查询中的选定结果进行更新。

我测试的最后阶段是将更改的记录更新到数据库中。无论我做什么,我都会收到错误 - 输入字符串的格式不正确。

看起来正在传递文本值而不是作者的ID - 但我在datavaluefield中确定了AuthorID。以下是我的代码:

 protected void btnAddAuthors(object sender, EventArgs e)
    {
    odsIdentifiedAuthors.Insert();
    lbAuthors.ClearSelection();
    Response.Redirect(Request.Url.AbsoluteUri);
    }



  protected void groupList_TextSelected(object sender, EventArgs e)
   {
    lbUserList.Items.Clear();
    lbUserList.Items.Add(new ListItem(DropDownList1.SelectedItem.Text, DropDownList1.SelectedItem.Text));
    lbUserList.Items.FindByValue(DropDownList1.SelectedItem.Text).Selected = true;
}






  <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" 
    DataSourceID="SqlDataSource2" DataTextField="Author_Name"  EnableViewState="false"
    DataValueField="ID" OnSelectedIndexChanged="AuthorsList_TextSelected" AutoPostBack="true">
</asp:DropDownList>

 <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Libros %>"         
    SelectCommand="SELECT [Author_Name], [AuthorID] FROM [Authors] WHERE ([Genre] = @Genre)">
    <SelectParameters>
        <asp:ControlParameter ControlID="ddlAuthors" Name="Genre" 
            PropertyName="SelectedValue" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

                                                                                   

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

ControlParameter的ControlID属性引用DropDownList的ID,因此两者必须匹配:

<asp:DropDownList ID="ddlAuthors" ...

答案 1 :(得分:0)

// DataValueField已设置为ID。但它应该是“AuthorID”

添加此

DataValueField =“AuthorID”