2015-09-21 2 views
1

Я искал решение этой проблемы на каждой странице, которую может предоставить мне Google, но я не смог найти точного решения, которое может решить Это.Отображение столбцов таблицы SQL Server в ASP.net MVC C#

Я думаю, что решение будет простым, но я не эксперт по C# & ASP.NET MVC, но некоторое время работал над веб-разработкой.

Ситуация: У меня есть база данных.

  • Наименование таблицы: MyData.
  • Имена столбцов: идентификатор, имя, поле и определения, и у меня есть некоторые значения под каждым столбцом.

Я использовал ADO.NET Entity Data Model для подключения моей базы данных существует, и эти модели находятся под .edmx/.tt папки.

public partial class MyData 
{ 
    public MyData(){ } 

    public int ID { get; set; } 
    public string Name { get; set; } 
    public string Field { get; set; } 
    public string Definition { get; set; } 
} 

Затем я добавить MVC5 контроллеры с видом, используя EF, который указывает на модели, которую я только что генерируется из базы данных.

namespace Mytest1.Controllers 
{ 
    public class MyDataController : Controller 
    { 
     private MyDatadb db = new MyDataEntities(); 

     // GET: MyData 
     public ActionResult Index() 
     { 
      return View(db.MyData.ToList()); 
     } 
     ... 

И я щелкнул правой кнопкой мыши, чтобы создать представление Index, редактирование, создание .... Ниже индекс:

@model IEnumerable<Mytest1.MyData> 

@{ 
    ViewBag.Title = "MyData"; 
} 

<h2>MyData</h2> 

<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<table class="table"> 
    <tr> 

     <th> 
      @Html.DisplayNameFor(model => model.Name) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Field) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.Definition) 
     </th> 

    </tr> 

@foreach (var item in Model) {... 

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

Итак, вопрос в том, что я не хочу показывать эти значения. Я хочу, чтобы веб-страница отображала информацию верхнего уровня этой базы данных. Поэтому я хотел бы иметь таблицу, в первой строке которой находится MyData, а нижняя строка ниже - ID, имя, поле и определение. Так просто. Но я не знаю, как это сделать.

Что я думаю о том, чтобы добавить это в текущей модели

public class showColumn : MyData{ 
    // 1. retrieve how many columns are in MyData 
    // 2. Return the values of those columns that have counted in step 1 
} 

А потом создать новую таблицу в Index.cshtml сказать:

<table class="table"> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.showColumn) 
     </th> 

    </tr> 

Было бы это Подумав возможный способ достижения этого решения? Или, если кто-то может дать мне лучший способ решить эту проблему, я по достоинству оценю это!

+1

Не могли бы вы MOC на то, что вы хотите в краску и добавить его к этому вопросу. Мне трудно понять, что вы пытаетесь сделать. Прошу прокомментировать, когда вы закончите, чтобы получить уведомление. Также (я бы сделал это за вас, но я - 90 человек из редакции !!!) Я бы рекомендовал добавить тэг asp.net-mvc к этому вопросу, так как большинство заглядывает на это, отвечая на вопросы. –

+0

Так что в основном эти кодовые блоки выше, мелко описывают мою проблему. если вы думаете, что псевдокод я написал ( public class showColumn: MyData { // 1. получить количество столбцов в MyData // 2.Возвращаем значения тех столбцов, которые были подсчитаны на шаге 1 }) - это возможный способ решить эту проблему, тогда мой вопрос будет заключаться в том, как сделать псевдореальным кодом. –

ответ

0

вы можете использовать sys.tables и sys.columns. просто написать отборное заявление на этих таблицах

select * from sys.tables 
select * from sys.columns 
+0

Да, это было бы возможным способом, но я бы хотел использовать C#, чтобы это произошло. Я думаю использовать цикл foreach, чтобы фактически подсчитать количество столбцов в этой таблице, а затем вернуть значение этих столбцов, которые были подсчитаны. –

+0

Я планирую ввести исходный sql-запрос, чтобы это произошло. Нужно ли задавать этот запрос в модели или контроллере? –

+0

попытаться выполнить действия в контроллерах. и просто держите классы в моделях –

Смежные вопросы