如何在mvc中显示数据库中的单个用户的详细信息

问题描述:

我想从数据库中获取详细信息以显示在视图中。在这里,我需要显示当前登录的特定用户的记录。但不幸的是,数据库表中的所有数据都进入了视图。但我不想显示所有的数据。如何在mvc中显示数据库中的单个用户的详细信息

在数据库中我有两个表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'子句。 –

我认为你应该使用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 working – Meghana