感谢非常有用的答案,我能够修改我的页面,以便我的下拉框正确地使用我的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>
如何解决此错误?
答案 0 :(得分:0)
ControlParameter的ControlID属性引用DropDownList的ID,因此两者必须匹配:
<asp:DropDownList ID="ddlAuthors" ...
答案 1 :(得分:0)
// DataValueField已设置为ID。但它应该是“AuthorID”
添加此
DataValueField =“AuthorID”