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管理上运行查询并检查其内容。我在查询中没有发现任何其他问题。