pihu
pihu

Reputation: 59

how to display database data in tables in view in mvc

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:

    <div id="formleft" style="border-style: solid; border-color: inherit; border-width: 4px; width:550px; height:500px; position:absolute; top: 345px; left: 348px;">
   <h2 class="heading" style="text-align: center;">Info</h2><%= ViewData["thumbs"] %> </div>

This code displays the data But i want to display it in tabular format.

How can i display the data in tabular format?

Upvotes: 3

Views: 32745

Answers (2)

Ali Reza
Ali Reza

Reputation: 227

Add follow code Before Html Code in your Model

<style> 
   table th {  border: 1px solid black; text-align:center }
   table td {  border: 1px solid black; text-align:center } 
  </style>

Upvotes: -2

Mathew Thompson
Mathew Thompson

Reputation: 56429

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<TableInfo> 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<TableInfo>

if (Model.Count > 0)
{
    <table>
        <tr>
            <td>File Name</td>
            <td>Date</td>
            <td>Time</td>
            <td>Info</td>
        </tr>
        @foreach (TableInfo item in Model)
        {
            <tr>
                <td>@item.FileName</td>
                <td>@item.Date</td>
                <td>@item.Time</td>
                <td>@item.Info</td>
            </tr>
        }
    </table>
}

Upvotes: 5

Related Questions