jor*_*ame 2 c# linq asp.net linq-to-sql
我知道这个问题可能重复,但我看了很多例子,但没有一个适合我的情况.
我在DataList中有一个DropDownList,我需要使用来自DB的数据填充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();
Run Code Online (Sandbox Code Playgroud)
在场景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();
Run Code Online (Sandbox Code Playgroud)
在场景2中,我得到错误:"DataBinding:'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();
Run Code Online (Sandbox Code Playgroud)
在场景3中,我得到与2中相同的错误,但在这一个上我没有使用PROC来获取数据.
任何帮助将不胜感激.
看起来您的Distinct调用应该是查询本身,而不是结果中的一个值:
var ddquery = (from dd in db.PRODUCTs select dd.pr_product).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
什么更重要,你不必指定DataTextField和DataValueField,因为你的DataSource是List<string>:
product.DataSource = ddquery;
product.DataBind();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9935 次 |
| 最近记录: |