如何从sql数据库中将值显示到gridview中

时间:2014-09-15 15:03:45

标签: c# sql asp.net gridview dataset

在我的数据库中,我有三张桌子。一个对于雇用我保留他们的名字,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,但我需要的是显示雇员和项目中的名称。 我知道我需要对数据集做一些事情,但我不知道是谁。

3 个答案:

答案 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)