Visual studio 2010 linq到sql:linq查询的问题

Visual studio 2010 linq到sql:linq查询的问题,visual-studio-2010,linq,sql-server-2008,linq-to-sql,Visual Studio 2010,Linq,Sql Server 2008,Linq To Sql,我有两张桌子 EmpInf EmpId, EmpName, Salary, DepartNumber. Dept DeptNo, Deptname, 我还有一个listview1和dropdownlist1,它绑定到EmpInf.EmpName 在传递特定查询时 FilterControl.DataClasses1DataContext obj = new DataClasses1DataContext(); protected void Dr

我有两张桌子

EmpInf
    EmpId,
    EmpName,
    Salary,
    DepartNumber.

Dept
    DeptNo,
    Deptname,
我还有一个
listview1
dropdownlist1
,它绑定到
EmpInf.EmpName

在传递特定查询时

FilterControl.DataClasses1DataContext obj = new DataClasses1DataContext();
protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e)
{
    var a = from r in obj.EmpInfs join s in obj.Dept1s on r.DeptNumber equals s.DeptNo where r.EmpName == "'" + DropDownList1.SelectedValue + "'" select s;

    ListView1.DataSource = a;
    ListView1.DataBind();   
}

每当我从dropdownlist中选择一个特定的名称时,它都会返回未返回任何数据。我缺少什么特定的代码或是否存在任何其他错误

SelectedIndexChanged1
中设置断点,查看
SelectedValue
的值,以确保
DropDownList1.SelectedValue
具有员工姓名。您也可以尝试
下拉列表1。选择文本

string selected = DropDownList1.SelectedValue.ToString();

// e = employee | d = department
var query =
            from   e in obj.EmpInfs
            join   d in obj.Dept1s on e.DeptNumber equals d.DeptNo
            where  e.EmpName == "'" + DropDownList1.SelectedValue + "'"
            select d;
更改此行:

where  e.EmpName == "'" + DropDownList1.SelectedValue + "'"
对于这一点:

where  e.EmpName == selected
好的,我最后一次尝试。。。在数据绑定之前执行以下操作:

ListView1.DataSource = query.ToList();

SelectedIndexChanged1
中放置断点,并查看
SelectedValue
的值,以确保
DropDownList1.SelectedValue
具有员工姓名。您也可以尝试
下拉列表1。选择文本

string selected = DropDownList1.SelectedValue.ToString();

// e = employee | d = department
var query =
            from   e in obj.EmpInfs
            join   d in obj.Dept1s on e.DeptNumber equals d.DeptNo
            where  e.EmpName == "'" + DropDownList1.SelectedValue + "'"
            select d;
更改此行:

where  e.EmpName == "'" + DropDownList1.SelectedValue + "'"
对于这一点:

where  e.EmpName == selected
好的,我最后一次尝试。。。在数据绑定之前执行以下操作:

ListView1.DataSource = query.ToList();

这里的问题很可能是您在Where子句的搜索条件中添加了单引号:

var a = from r in obj.EmpInfs 
        join s in obj.Dept1s on r.DeptNumber equals s.DeptNo 
        where r.EmpName == "'" + DropDownList1.SelectedValue + "'" 
        select s; 
假设DropDownList1.SelectedValue为“Smith”,则生成的sql将遵循以下几行:

SELECT *
FROM <tables>
WHERE EmpName = ''Smith''

这里的问题很可能是您在Where子句的搜索条件中添加了单引号:

var a = from r in obj.EmpInfs 
        join s in obj.Dept1s on r.DeptNumber equals s.DeptNo 
        where r.EmpName == "'" + DropDownList1.SelectedValue + "'" 
        select s; 
假设DropDownList1.SelectedValue为“Smith”,则生成的sql将遵循以下几行:

SELECT *
FROM <tables>
WHERE EmpName = ''Smith''

它在哪里显示未返回任何数据?在页面中,还是您遇到了错误?好的,但此消息显示在哪里?在页面中,还是错误?在页面上,先生,当我从下拉列表中选择值时,不是返回值,而是返回未返回的数据。我在sqlserver中尝试了相同的查询,它在那里运行。它在哪里显示
没有返回任何数据
?在页面中,还是您遇到了错误?好的,但此消息显示在哪里?在页面中,还是错误?在页面上,先生,当我从下拉列表中选择值时,不是返回值,而是返回未返回的数据。我在sqlserver中尝试了相同的查询,它在那里运行。先生,我想选择部门名称作为DeptName,同时从dropdownlist中选择特定员工名称作为EmpInf。好的。。。很抱歉给你带来了困惑。将相应地调整代码。先生,已检查断点的该部分,但没有帮助,错误继续存在。是的,先生,我已将EmpInf.EmpName与dropdownlist绑定。@Leniel Macaferi。谢谢,先生,这个问题已经解决了。但由于我使用了linqdatasource控件,并将controlname作为DataSourceID=“LinqDataSource1”提供给Listview Id,同时我尝试使用ListView1.DataSource=a;ListView1.DataBind()。因此,在运行时,使用datasource或datasourceID删除其中任何一个都会引发异常?先生,我想选择部门名称作为DeptName,同时从dropdownlist中选择特定员工名称作为EmpInf。好的。。。很抱歉给你带来了困惑。将相应地调整代码。先生,已检查断点的该部分,但没有帮助,错误继续存在。是的,先生,我已将EmpInf.EmpName与dropdownlist绑定。@Leniel Macaferi。谢谢,先生,这个问题已经解决了。但由于我使用了linqdatasource控件,并将controlname作为DataSourceID=“LinqDataSource1”提供给Listview Id,同时我尝试使用ListView1.DataSource=a;ListView1.DataBind()。所以在运行时,它会抛出一个异常以使用datasource或datasourceID删除它们中的任何一个?