0

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

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

看起来传递的是文本值而不是作者的 ID - 但我已经在数据值字段中标识了 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>

如何解决此错误?

4

2 回答 2

0

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

<asp:DropDownList ID="ddlAuthors" ...
于 2013-11-01T00:25:46.287 回答
0

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

添加这个

DataValueField="作者ID"

于 2013-11-01T05:26:29.293 回答