Возврат набора данных контроллеру в asp.net MVC

#sql #asp.net-mvc

#sql #asp.net-mvc

Вопрос:

На уровне доступа к данным у меня есть метод для извлечения всех табличных значений. Как я могу вернуть его в контроллер в asp.net MVC. кто-нибудь может мне помочь?

Заранее спасибо.

 public static Dataset GetMembers()
{ 
    //sql steps to retrieve records and fill it in dataset 
} 
  

Код контроллера:

 {
    var members = class.GetMembers()

    return View(members);
}
  

Комментарии:

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

2. Код DAL: общедоступный статический набор данных GetMembers(){ //шаги sql для извлечения записей и заполнения их в dataset } Код контроллера: переменные члены = класс. GetMembers(){ возвращает представление (элементы);}

3. @Sivakumar Пожалуйста, включите будущий код в свой исходный пост. Мне кажется, что вы уже возвращаете его на свой контроллер и отправляете в свое представление. Вы хотели спросить что-то еще — возможно, как отобразить это в вашем коде просмотра?

4. Нет, Дэвид, просто я хочу вернуть записи в виде Ienumerable в контроллер с уровня доступа к данным

5. @Sivakumar Что вы используете в своем уровне доступа к данным? ADO.NET, Entity Framework, Linq к классам SQL?

Ответ №1:

Вам нужно будет изменить свой GetMembers метод (или реализовать другой, который возвращает IEnumerable<YourType> . В этом примере (поскольку вы не предоставляете никаких дополнительных данных) я верну список MyType , который, как я предполагаю, выглядит следующим образом:

 public class MyType
{
    public int ID { get; set; }
    public string Name { get; set; }
}
  

А затем заполнить List<MyType> внутри GetMembers

 public static IEnumerable<MyType> GetMembers()
{
List<MyType> list = new List<MyType>();

using(SqlConnection db = new SqlConnection(connectionString))
{

    DataSet ds = new DataSet();
    // get a DataSet as normal
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        list.Add(new MyType()
        {
            ID = Convert.ToInt32(dr["ID"].ToString()),
            Name = dr["Name"].ToString())
        });
    }
}

return list;
}
  

Это базовый пример того, как вы могли бы вернуть IEnumerable (из List<T> реализаций которого) из вашего метода.