2017-04-04 5 views
0

보기에서 표시 할 데이터베이스의 세부 정보를 가져 오려고합니다. 여기에 현재 기록 된 특정 사용자의 기록을 표시해야합니다. 하지만 불행히도 DB 테이블에있는 모든 데이터가 표시됩니다. 하지만 모든 데이터를 표시하고 싶지 않습니다.MVC에서 단일 사용자에게 데이터베이스의 세부 정보를 표시하는 방법

DB에는 tblEmployee 및 TaskDetails에 대한 두 개의 테이블이 있습니다.

public class TaskDetails 
{ 
    public string ProjectID { get; set; } 
    public string ProjectName { get; set; } 
    public DateTime StartDate { get; set; } 
    public DateTime EstimatedDate { get; set; } 
    public string TaskDescription { get; set; } 
} 

이것은 내 컨트롤러 내가 ADO.Net를 사용하고 여기에 데이터를 가져하려면 여기

public ActionResult TaskDetails(string td) 
{   
    string connectionstring = "data source = NLTI37; initial catalog = Data; integrated security = True; MultipleActiveResultSets = True; App = EntityFramework"; 
    string sql = "select * from TaskDetail"; 
    SqlConnection conn = new SqlConnection(connectionstring); 
    SqlCommand cmd = new SqlCommand(sql, conn); 
    var Details = new List<TaskDetails>(); 
    { 
     conn.Open(); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     while (rdr.Read()) 
     { 
       var ProjectDetail = new TaskDetails(); 
       ProjectDetail.ProjectID = rdr["ProjectID"].ToString(); 
       ProjectDetail.ProjectName = rdr["ProjectName"].ToString(); 
       ProjectDetail.StartDate = DateTime.Parse(rdr["StartDate"].ToString()); 
       ProjectDetail.EstimatedDate = DateTime.Parse(rdr["EstimatedDate"].ToString()); 
       ProjectDetail.TaskDescription = rdr["TaskDescription"].ToString(); 
       Details.Add(ProjectDetail); 
     } 
    } 
    return View(Details); 
} 

나는 세부 사항을 가져 오는에 ADO.Net을 사용하고 있습니다 : 이 내 모델입니다. . 저는 여기에 현재 로그인 한 사용자의 기록을 표시해야

<tbody> 
     @foreach (var ProjectDetail in Model) 
     { 
      <tr> 
       <td>@ProjectDetail.ProjectID</td> 
       <td>@ProjectDetail.ProjectName</td> 
       <td>@ProjectDetail.StartDate</td> 
       <td>@ProjectDetail.EstimatedDate</td> 
       <td>@ProjectDetail.TaskDescription</td> 
      </tr> 
     } 
</tbody> 

: 그리고 이러한 세부 사항은 내가 현재 로그인 한 사용자의보기에 표시 할 필요가

를이 내보기입니다. 하지만 불행히도 여기에 나오는 모든 사용자 정보. 내 이해에 따라 SQL 문이 잘못되었습니다. 틀린 경우에 나를 정정하십시오. 특정 사용자 세부 정보를 얻는 방법. 어느 누구도이 일을 도울 수 있습니까?

+1

당신이 필요로하는거야'where' 당신의 SQL에 절. 사용자가 귀하의 업무 세부 사항에 대해 귀하의 직원과 어떻게 관계가 있는지는 분명하지 않지만 그 부분을 작성하는 데 필요한 핵심 정보입니다. – Richard

+0

@Richard와 마찬가지로, 테이블 중 하나에 사용자에 대한 외래 키가 있다고 가정합니다. ProjectTable 또는 TaskDetail 테이블입니다. 이 두 테이블의 디자인을 제공하면 매우 유용 할 것입니다. 하지만 기본적으로 쿼리를 변경하여 가져올 레코드를 정의하는 where 절이 있어야합니다. – MarioMucalo

+0

"모든 데이터를 표시하고 싶지 않음"을 요청하면 매개 변수와 함께 WHERE 절을 사용하려는 경우 - 필요에 따라 가져온 데이터를 필터링 할 조건을 선택하십시오. 쿼리 문자열에서 기존 테이블과 함께 다른 테이블을 쿼리하려면'JOIN' 절을 사용하십시오. –

답변

0

where 절을 사용해야한다고 생각합니다. 이 시도. 내가 td 인 것으로 가정하여 ProjectID

string sql = "select * from TaskDetail where [email protected]"; 
SqlConnection conn = new SqlConnection(connectionstring); 
SqlCommand cmd = new SqlCommand(sql, conn); 
cmd.Parameters.AddWithValue("@ProjectID", td); 
+0

감사합니다. jee..its가 작동했습니다. – Meghana

관련 문제