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删除它们中的任何一个?