在MVC中使用SqlDataReader显示数据以查看

Viv*_*dey -2 c# asp.net-mvc sqldatareader razor

如何在MVC中使用SqlDataReader使用Razor视图显示数据?我已经尝试过这样的事情。

控制器代码:-

public ActionResult UserDetails(DashBoard dash)
    {            
        using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
        {
            String sql = "SELECT DU.UserRMN, MU.Name, DeptName, MgrID, TLeadID FROM Details_Users DU, Master_Users MU where DU.UserRMN=MU.UserRMN";
            SqlCommand cmd = new SqlCommand(sql, cn);           
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            List<DashBoard> model = new List<DashBoard>();
            while(rdr.Read())
            {
                var details = new DashBoard();
                details.UserRMN = rdr["UserRMN"].ToString();
                details.Name = rdr["Name"].ToString();
                details.DeptID = rdr["DeptID"].ToString();
                details.MgrID = rdr["MgrID"].ToString();
                details.TLeadID = rdr["TLeadID"].ToString();
                model.Add(details);
            }
            return View(model);
        }  
    }
Run Code Online (Sandbox Code Playgroud)

小智 5

不确定您的问题是什么,但是这里是如何将模型对象传递到相应的视图。

通过添加要向其传递模型对象的视图名称来修改控制器的返回行,然后作为第二个参数添加模型对象:

public ActionResult UserDetails(DashBoard dash)
{ 

        using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
        {
            String sql = "SELECT DU.UserRMN, MU.Name, DeptName, MgrID, TLeadID FROM Details_Users DU, Master_Users MU where DU.UserRMN=MU.UserRMN";
            SqlCommand cmd = new SqlCommand(sql, cn);           
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            List<DashBoard> model = new List<DashBoard>();
            while(rdr.Read())
            {
                var details = new DashBoard();
                details.UserRMN = rdr["UserRMN"].ToString();
                details.Name = rdr["Name"].ToString();
                details.DeptID = rdr["DeptID"].ToString();
                details.MgrID = rdr["MgrID"].ToString();
                details.TLeadID = rdr["TLeadID"].ToString();
                model.Add(details);
            }
            return View("ViewName", model);
        } 
Run Code Online (Sandbox Code Playgroud)

您的视图应如下所示:

        @model IEnumerable<Models.DashBoard>
        @{
            ViewBag.Title = "Dashboard";
        }

        <h2>Dashboard</h2>

        @foreach(var item in Model){
            <div>
                <li>
                    @item.Name
               </li>
               <li>
                    @item.DeptID 
               </li>
               ....
            </div>
        }
Run Code Online (Sandbox Code Playgroud)