ASP.NET MVC 4 доступ к данным - PullRequest
       8

ASP.NET MVC 4 доступ к данным

0 голосов
/ 03 ноября 2018

Я пытаюсь показать данные о сотруднике в таблице. Я создал класс модели EmployeeDetail, EmployeeController и представление в EmployeeDetails.cshtml, а также класс для доступа к базе данных.

EmployeeDetails мой класс модели:

[Serializable]
public class EmployeeDetails
{
    private int _eid;
    private string _ename;
    private string _eaddress;
    private string _gender;
    private string _emobileno;
    private bool _status;
    private DateTime _ejoiningdate;
    private DateTime _eleavedate;

    #region ================= Code start for public variable =========================

    [DataObjectField(true,true,false)]
    public int eid {
        get { return _eid; }
        set { _eid = value; }
    }

    [DataObjectField(true, true, false)]
    public string ename
    {
        get { return _ename; }
        set { _ename = value; }
    }

    [DataObjectField(true, true, false)]
    public string eaddress
    {
        get { return _eaddress; }
        set { _eaddress = value; }
    }

    [DataObjectField(true, true, false)]
    public string gender
    {
        get { return _gender; }
        set { _gender = value; }
    }

    [DataObjectField(true, true, false)]
    public string emobileno
    {
        get { return _emobileno; }
        set { _emobileno = value; }
    }

    [DataObjectField(true, true, false)]
    public bool status
    {
        get { return _status; }
        set { _status = value; }
    }

    [DataObjectField(true, true, false)]
    public DateTime ejoiningdate
    {
        get { return _ejoiningdate; }
        set { _ejoiningdate = value; }
    }

    [DataObjectField(true, true, false)]
    public DateTime eleavedate
    {
        get { return _eleavedate; }
        set { _eleavedate = value; }
    }

    #endregion ==================== code end for public variable =================
}

Вот мой EmployeeController:

public class EmployeeController : Controller
{
    // GET: /Employee/
    private Employeecon db = new Employeecon();

    public ActionResult EmployeeDetails()
    {
        var studentList = new List<EmployeeDetails>{ 
                        new EmployeeDetails() { eid = 1, ename = "John", eaddress = "teszxs" } ,
                        new EmployeeDetails() { eid = 2, ename = "Steve",  eaddress = "jfdsk" } ,
                        new EmployeeDetails() { eid = 3, ename = "Bill",  eaddress =  "jfdsk" } ,
                        new EmployeeDetails() { eid = 4, ename = "Ram" , eaddress =  "jfdsk" } ,
                        new EmployeeDetails() { eid = 5, ename = "Ron" , eaddress =  "jfdsk" } ,
                        new EmployeeDetails() { eid = 4, ename = "Chris" , eaddress =  "jfdsk" } ,
                        new EmployeeDetails() { eid = 4, ename = "Rob" , eaddress =  "jfdsk" } 
                    };
        return View();
    }
}

Я создал EmployeeDetails.cshtml как Razor view:

@model IEnumerable<Employee.Models.EmployeeDetails>

<html>
<head>
    <title>Employee Details</title>
</head>
<body>
    <div align="center">
      <b> Employee Details</b> 

    </div>
    <div align="right">

<p>
@Html.ActionLink("New Employee", "NewEmployee")
</p>
    </div>
<table align="center" cellpadding="5" cellspacing="5" style="border:1px thin 
black;" frame="box">
<tr>
    <th>
        Name
    </th>
    <th>
      Address

    </th>
    <th>
        Mobile no

    </th>
    <th>
        Joining Date
    </th>
</tr>
@foreach(var r in Model)
{
<tr>
    <td>
       @* @r.ename;*@

            @Html.DisplayNameFor(m => r.ename); //but when I am declaring like that its showing error the call is ambiguous between the following methods or properties 
    </td>
</tr>

<tr>
    <td>
        @*@r.eaddress;*@
            @Html.DisplayNameFor(m => r.eaddress);
    </td>
</tr>
<tr>
    <td>
      @*  @r.emobileno;*@
            @Html.DisplayNameFor(m => r.emobileno);
    </td>
</tr>
<tr>
    <td>
      @*  @r.ejoiningdate;*@
            @Html.DisplayNameFor(m => r.ejoiningdate);
    </td>
</tr>
}
</table>
    </body>
</html>

Я создаю отдельную папку для доступа к данным. Я создал файл контекста данных Employeecon.cs:

public class Employeecon : DbContext
{
    public Employeecon() : base("EmployeeContext")
    { 
    }

    public DbSet<EmployeeDetails> emp { get; set; }
}

И я добавил строку подключения в файл web.config:

 <add name="EmployeeContext" 
      connectionString="Data Source=LEVIOZA;Initial Catalog=Manali;Persist Security Info=True;User ID=sa;Password=pedcall" 
      providerName="System.Data.SqlClient" />

Я хочу подключиться к базе данных SQL Server вместо локальной базы данных или не хочу создавать базу данных в папке App_Data. Как мы сделали в asp.net с использованием SQL Server, мы передаем строку подключения, используя SqlConnection, вот так

Я пытаюсь подключиться, но я не знаю, работает ли он или нет.

Я не знаю, что не так с этой программой. Я пытаюсь изучить ASP.NET MVC, и это моя первая попытка. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 03 ноября 2018

Итак, вы действительно хорошо поработали, позвольте мне указать вам на все остальное.

Во-первых, , со стороной подключения к базе данных, вы создали симуляцию данных, которая, я полагаю, вы удивляетесь, почему они не отображаются в представлении.

Это потому, что вы не просили контролируемого использовать ваши данные в качестве модели для представления. Да, вы указали, какой тип модель, но вы не предоставили ей данные.

Чтобы исправить это, передайте методу View () нужный вам экземпляр модели, чтобы он мог связать его вместе.

return View(studentList);

Во-вторых, , вы хотите извлечь эту информацию из базы данных, вам не хватает только запрашиваемой информации из базы данных и вернуть ее как модель.

Например, давайте создадим еще один URL с именем /EmployeeDetailsFromDb

public ActionResult EmployeeDetailsFromDb()
{
    var studentList = db.EmployeeDetails; // .EmployeeDetails should be changed to the table\dataset you want.
    return View(studentList);
}

Это сработает, если предположить, что EmployeeDetails (если существует) на самом деле является набором EmployeeDetails сущностей, чего и ожидает представление .cshtml.

...