我知道这个问题可能是重复的,但我看了很多例子,但没有一个适合我的情况。使用LINQ填充DropDownList的正确方法是什么?
我有一个DropDownList内DataList,我需要填充DropDownList数据从数据库。我知道如何在DataList中找到下拉控件,并且我知道如何使用SqlCommand填充下拉列表。现在我试图学习LINQ,但我无法填充下拉列表。请参阅我下面的场景:
//Scenario 1
var ddquery = from dd in db.PRODUCTs select dd.pr_product.Distinct();
product.DataSource = ddquery;
product.DataTextField = "pr_product";
product.DataValueField = "pr_product";
product.DataBind();
在场景1中,我得到错误:“不支持类型‘System.String’序列的运营商。”
//Scenario 2
var ddproc = from dd in db.isp_GETDDL("PRODUCTS", "", "") select dd;
product.DataSource = ddproc;
product.DataTextField = "pr_product";
product.DataValueField = "pr_product";
product.DataBind();
在方案2中,我得到错误:“数据绑定:‘isp_GETDDLResult’不包含名为‘pr_product’属性”。在这种情况下,我并不是真的如果我正确地做到这一点,因为PROC返回一组数据,但我不确定我是否正确处理。
//Scenario 3
var ddq = from dd in db.PRODUCTs select dd;
product.DataSource = ddq;
product.DataTextField = "pr_product";
product.DataValueField = "pr_product";
product.DataBind();
在方案3中,我得到了同样的错误在2,但在这一个我不使用PROC来获取数据。
任何帮助将不胜感激。
对不起,所有三个答案我没有得到任何错误,但将DropDownList没有被填补。我究竟做错了什么? – jorame 2013-03-16 22:17:32
我明白了。我的代码中的一个条件没有得到满足。所有三个答案都是有效的,但只能标记一个作为答案抱歉:-( – jorame 2013-03-16 22:29:12