C# 如何根据不同表中的两个匹配值从表中检索数据

C# 如何根据不同表中的两个匹配值从表中检索数据,c#,sql-server,winforms,C#,Sql Server,Winforms,我有emp表,其中empId是主键,另一个表empLogin中empId是外键,每当用户登录系统时,其ID将从emp表插入empLogin表中,此empId在计费和接收表单中非常重要,我想显示员工姓名而不是其ID 我已经为这个想法写了这些代码,但它给了我一个例外,那就是 无法绑定多部分标识符“empLogin.empId” 我的代码是: cmd2 = new SqlCommand("select empName from emp where emp.empId=empLogin.empId",

我有
emp
表,其中
empId
是主键,另一个表
empLogin
empId
是外键,每当用户登录系统时,其ID将从
emp
表插入
empLogin
表中,此
empId
在计费和接收表单中非常重要,我想显示员工姓名而不是其ID

我已经为这个想法写了这些代码,但它给了我一个例外,那就是

无法绑定多部分标识符“empLogin.empId”

我的代码是:

cmd2 = new SqlCommand("select empName from emp where emp.empId=empLogin.empId", cn);
dr2 = cmd2.ExecuteReader();
dr2.Read();
rcptEmpNametxt.Text = dr["empName"].ToString();
dr.Close();
最简单的方法是:

cmd2 = new SqlCommand("select empName from emp, empLogin where emp.empId=empLogin.empId", cn);
但这一条更有用:

cmd2 = new SqlCommand("select empName from emp inner join empLogin on emp.empId=empLogin.empId", cn);
最简单的方法是:

cmd2 = new SqlCommand("select empName from emp, empLogin where emp.empId=empLogin.empId", cn);
但这一条更有用:

cmd2 = new SqlCommand("select empName from emp inner join empLogin on emp.empId=empLogin.empId", cn);

您必须连接表并执行此操作,内联sql语句中没有使用连接,这就是它抛出“多部分标识符”empLogin.empId“无法绑定”错误的原因。

您必须连接表并执行此操作,内联sql语句中没有使用连接,这就是它抛出错误的原因“多部分标识符”empLogin.empId“无法绑定”错误。

缺少
emp
empLogin

select empName 
from emp 
INNER JOIN empLogin ON emp.empId=empLogin.empId

emp
empLogin

select empName 
from emp 
INNER JOIN empLogin ON emp.empId=empLogin.empId

像这样的东西应该有用

SELECT TOP 1 empName
FROM EMP E
INNER JOIN EMPLOGIN EL ON E.empId = EL.empId 
ORDER BY ... DESC
应使用表
EMPLOGIN
主键
替换

我希望这能有所帮助:)

像这样的东西应该有用

SELECT TOP 1 empName
FROM EMP E
INNER JOIN EMPLOGIN EL ON E.empId = EL.empId 
ORDER BY ... DESC
应使用表
EMPLOGIN
主键
替换

我希望这有帮助:)

你需要加入表格。你的问题不清楚,我认为会导致误导性的答案。在你的代码运行时,你有emp id还是emplogin id?或者两者都有?你需要加入表格。你的问题不清楚,我认为会导致误导性的答案。在你的代码运行时,你有emp I吗d或emplogin id?或两者都有?如果当前用户始终是结果集中的第一个用户,这可能会起作用。@威震天是的,先生,当前用户始终是结果集中的第一个用户,我非常感谢您的帮助,这对我起到了作用,我以后会记住这一点……如果当前用户始终是结果集中的第一个,这可能会起作用esult set.@威震天是的,先生,当前用户总是结果集中的第一个,我非常感谢您的帮助,这对我起到了作用,我会记住这一点以备将来…尊敬的先生,我会记住这一点以备将来…尊敬的先生,我会记住这一点以备将来…尊敬的先生