C# 关系的内在联结

C# 关系的内在联结,c#,.net,sql,join,C#,.net,Sql,Join,我想从三个表中获取数据:role、permission和right。我使用内部连接 代码 SqlConnection con=Class3.GetConnection(); 公共数据集showoption1() { string sql1=“选择right.rightname,role.rolename 未经允许 right.rightid上的内部联接=permission.rightid permission.roleid=role.roleid”上的内部联接角色; SqlCommand cm

我想从三个表中获取数据:
role
permission
right
。我使用内部连接

代码
SqlConnection con=Class3.GetConnection();
公共数据集showoption1()
{
string sql1=“选择right.rightname,role.rolename
未经允许
right.rightid上的内部联接=permission.rightid
permission.roleid=role.roleid”上的内部联接角色;
SqlCommand cmd=新的SqlCommand(sql1,con);
SqlDataAdapter adptr=新的SqlDataAdapter(cmd);
数据集ds=新数据集();
自动进料(ds);
DataTable=ds.Tables[0];
返回ds;
}
数据库表 角色

Role Id   Role name
  1       admin
  2       employee
permissionid    rightid     roleid
   1             1           2
   2             1           1

rifgtid    rightname
      1    view courses
      2    view assessmenttest
权限(关联)


我不确定你在问什么,但是你的sql语法有一个错误

SELECT      right.rightname,
            role.rolename 
FROM        permission 
INNER JOIN  right ON right.rightid = permission.rightid 
INNER JOIN  role ON permission.roleid = role.roleid
我将上的内部联接替换为上的内部联接右侧


作为旁注,请处理ADO.NET相关对象(SqlConnection、SqlCommand、SqlDataAdapter)

我不确定您在问什么,但您的sql语法有一个错误

SELECT      right.rightname,
            role.rolename 
FROM        permission 
INNER JOIN  right ON right.rightid = permission.rightid 
INNER JOIN  role ON permission.roleid = role.roleid
我将上的内部联接替换为上的内部联接右侧


作为旁注,处理与ADO.NET相关的对象(SqlConnection、SqlCommand、SqlDataAdapter)

如果表名为
RIGHT
,则需要对该名称进行分隔,因为它是一个


(偷取了克劳迪奥的询问)。但我建议您重新访问该模式,并为该表选择一个不同的非保留名称。

如果该表的名称是
RIGHT
,那么您需要对该名称进行分隔,因为它是一个,例如


(偷取了克劳迪奥的询问)。但我建议您重新访问该模式,并为表选择一个不同的非保留名称。

这看起来更像是一个SQL问题,而不是.NET问题。可能的重复更像是一个SQL问题,而不是.NET问题。@user1405508的可能重复:请再试一次,我有一个额外的
角色.rolename之后
我已经删除了它,但问题是same@user1405508:在sql server管理上运行查询并检查其内容。我在查询中没有看到任何其他问题。@user1405508:请重试,我在
角色之后有一个额外的
。rolename
我已将其删除,但问题是same@user1405508:在sql server管理上运行查询并检查其内容。我在查询中没有发现任何其他问题。