在我的数据库中,我有三张桌子。一个对于雇用我保留他们的名字,ids,工资...在第二个名为项目我保持id,位置,名称。在名为WorksOn的第三个中,我保留了来自雇员的id和来自项目的id。在gridview的Asp .Net网站中,我需要显示员工的姓名和他正在工作的项目的名称。
string connect =
WebConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
SqlConnection con = new SqlConnection(connect);
try
{
con.Open();
}
catch (Exception err)
{
string error = err.Message;
con.Close();
}
SqlCommand command = new SqlCommand();
command.Connection = con;
SqlDataReader reader;
command.CommandText = "SELECT * FROM WorksON ";
reader= command.ExecuteReader();
在gridview中的数据源中如果我选择显示WorksOn表中的值,它会显示来自employees的id和来自项目的id,但我需要的是显示雇员和项目中的名称。 我知道我需要对数据集做一些事情,但我不知道是谁。
答案 0 :(得分:0)
您的SQL命令必须加入相关表。类似的东西:
SELECT * FROM WorksOn JOIN Employee on WorksOn.EmployeeId = Employee.Id
请注意,不 SELECT" *" (所有专栏)。您应该只选择数据视图所需的那些列以提高性能。
答案 1 :(得分:0)
在SQL命令中,您没有提及有关Employs的任何信息。您需要使用JOIN SQL命令来获取员工姓名和公司名称。
而不是使用“SELECT * FROM ...”,而是考虑使用列名称,因为您没有尝试显示所有列。它将帮助我们理解列的名称,以进一步帮助您。
答案 2 :(得分:0)
使用这样的JOIN查询:
SELECT project.projectName, employee.Name
FROM (worksOn
INNER JOIN employee
ON (worksOn.employeeId = employee.employeeId))
INNER JOIN project
ON (project.projectId = employee.employeeId)
AND (worksOn.projectId = project.projectId)