我不太了解DB和Query
我有三张桌子
EMP(包含详细信息)Junction(包含EMP表的ID和技能表的ID)技能(包含技能)
这里的联结表提供了与emp和技能的多对多关系,即一个emp可以有很多技能,一个技能可以有很多emp。 现在问题是我要通过选择skiltable中的技能来填充带有E_details的GridView。 你能告诉我一个例子来为EMP表做一个选择查询,方法是选择具有哪个emp ID和技能ID出现在Junction Table中......
由于
答案 0 :(得分:0)
你需要根据你的表结构来修改它......但是我假设你有emp.id和skill.id作为你表中的主键。
这将是:
Select EMP.*, Skill.*
FROM emp
INNER JOIN Junction ON emp.ID=junction.empID
inner join Skill ON skill.id = junction.skillID
您需要根据表格中的列以及要从中检索的值来更改此内容...
答案 1 :(得分:0)
如果您使用的是ADO.NET,可以按如下方式编写:
string query = @"SELECT e.*
FROM EMP e
INNER JOIN Junction j ON e.ID = j.empID
WHERE j.skillID = @SkillID";
int skillID = 5;
using (var conn = new SqlConnection("connectionString"))
{
using (var cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@SkillID", skillID);
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int id = (int)reader["ID"];
int name = (string)reader["Name"];
// etc.
}
}
}
}
在ASP.NET中,只需将skillID
变量作为查询字符串变量提供给请求。并将每列读入一个模型,您可以使用它来填充GridView内部。