C# 在不使用LINQ数据源的情况下将记录存储在DB的dropdownlist中
我有一个舞蹈学院的网站,用户可以注册和增加/减少舞蹈课程 在要删除特定舞蹈的网页中,对于特定用户,下拉列表显示其注册的舞蹈 现在我想从列表中删除其中一个舞蹈 因此,我将从表和dropdownlist中删除该行。问题是每次ID索引最低的项目被删除时,不管用户选择哪一个 我认为我为下拉列表错误地存储了DataTextField和DataValueField。有人能帮我吗? 代码是:C# 在不使用LINQ数据源的情况下将记录存储在DB的dropdownlist中,c#,asp.net,linq,C#,Asp.net,Linq,我有一个舞蹈学院的网站,用户可以注册和增加/减少舞蹈课程 在要删除特定舞蹈的网页中,对于特定用户,下拉列表显示其注册的舞蹈 现在我想从列表中删除其中一个舞蹈 因此,我将从表和dropdownlist中删除该行。问题是每次ID索引最低的项目被删除时,不管用户选择哪一个 我认为我为下拉列表错误地存储了DataTextField和DataValueField。有人能帮我吗? 代码是: private void PopulateDanceDropDown() {
private void PopulateDanceDropDown()
{
var registereddanceList = from dd in context.DANCER_AND_DANCE
where dd.UserId == dancerId
select new
{
Text = dd.DanceName,
Value = dd.DanceId
};
dances.DataSource = registereddanceList;
dances.DataTextField = "Text";
dances.DataValueField = "Value";
dances.DataBind();
}
protected void dropthedance(object o, EventArgs e)
{
String strDataValueField = dances.SelectedItem.Value;
int danceIDFromDropDown = Convert.ToInt32(strDataValueField);
var dancer_dance = from dd in context.DANCER_AND_DANCE
where dd.DanceId == danceIDFromDropDown
select dd;
foreach (var dndd in dancer_dance)
{
context.DANCER_AND_DANCE.DeleteOnSubmit(dndd);
}
try
{
context.SubmitChanges();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
PopulateDanceDropDown();
}
<asp:DropDownList ID = "dances" runat="server">
</asp:DropDownList>
<asp:Button ID="dropDance" runat="server" OnClick="dropthedance" Text="Drop Class" BackColor="Maroon" ForeColor="#FFCC99"/>
正如您的问题所说,您希望访问记录而不将其存储在Linq中 所以下面的一个可能是你的另一个选择 首先将数据库中的所有数据存储到,比如列表 以下是IDPAIR的名称:
class NameIDPair
{
public NameIDPair(){}
public string NameValue{get;set;}
public string IDValue{get;set;}
}
然后按如下方式填充下拉列表:
List<NameIDPair> storeInMe = From Database
foreach(NameIDPair pair in storeInMe )
{
ListItem item = new ListItem();
item.Value = pair.IDValue;
item.Text = pair.NameValue;
ddldancesList.Items.Add(item);
}
然后,对于删除,可以调用delete存储过程来删除相同的
希望这有帮助…这两段代码中的上下文是同一个实例吗?在标题中不使用LINQ数据源是什么意思?这是一项要求吗?这是它失败的地方吗?您的代码看起来应该是正常的。