In my MVC application am retrieving data from Database. I want to display the retired data in tables.
controller code:
public ActionResult MyAccount()
{
var user = User.Identity.Name;
string sThumbnails = "";
DataSet dsTemplates = new DataSet();
string qryTemplets = "select * from FileInfo where UserName= '" + user + "'";
open_Connection();
SqlDataAdapter daTemplate = new SqlDataAdapter(qryTemplets, conn);
daTemplate.Fill(dsTemplates, "FileInfo");
DataTable dtTemplates = new DataTable();
dtTemplates = dsTemplates.Tables[0];
foreach (DataRow row in dtTemplates.Rows)
{
sThumbnails = sThumbnails + row["FileName"] + row["Date"] + row["Time"] + row["Info"] ;
ViewData["thumbs"] = sThumbnails;
}
close_Connection();
return View();
}
view code:
Info
This code displays the data But i want to display it in tabular format.
How can i display the data in tabular format?
解决方案
Don't use ViewData, use a Model built using a custom class to store that information. Something like:
public class TableInfo
{
public string FileName { get; set; }
public string Date { get; set; } //you might want to change this to DateTime
public string Time { get; set; } //this may need changing to TimeSpan or int possibly?
public string Info { get; set; }
}
Then you can do:
List tables = dtTemplates.Rows.AsEnumerable()
.Select(t => new TableInfo
{
FileName = row["FileName"],
Date = row["Date"],
Time = row["Time"],
Info = row["Info"]
})
.ToList();
close_Connection();
return View(tables);
Then in your view you can do:
@model List
if (Model.Count > 0)
{
File Name | Date | Time | Info |
@foreach (TableInfo item in Model)
{
@item.FileName@item.Date@item.Time@item.Info}
}