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

时间:2016-10-05 12:08:37

标签: 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", cn);
dr2 = cmd2.ExecuteReader();
dr2.Read();
rcptEmpNametxt.Text = dr["empName"].ToString();
dr.Close();

4 个答案:

答案 0 :(得分:2)

最简单的方法是:

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);

答案 1 :(得分:0)

您必须加入表并执行此操作,您的内联sql语句中没有使用连接,这是它抛出的原因"多部分标识符" empLogin.empId&# 34;无法受约束的#34;错误。

答案 2 :(得分:0)

empempLogin

之间缺少加入
select empName 
from emp 
INNER JOIN empLogin ON emp.empId=empLogin.empId

答案 3 :(得分:0)

这样的事情应该有用......

SELECT TOP 1 empName
FROM EMP E
INNER JOIN EMPLOGIN EL ON E.empId = EL.empId 
ORDER BY ... DESC

...应替换为表格primary key的{​​{1}}。 我希望这会有所帮助:)