powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / отображение результатов выборки на web-странице MVC-приложения
9 сообщений из 9, страница 1 из 1
отображение результатов выборки на web-странице MVC-приложения
    #39894117
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброе время суток, коллеги!

есть следующая задача:
прочитать значения из базы данных запросом
и вывести их на web-страницу (mvc)
задаю в модели классы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System.Data.Entity;

namespace WebApp1.Models
{
//...
    public class BalansesMonitor//остатки на дефростерах!
    {
        public string MaterialCode { get; set; }
        public string MaterialName { get; set; }
        public string Lot { get; set; }
        public string BlStatus { get; set; }
        public string BlStatusDesc { get; set; }
        public string LocationName { get; set; }
        public double Qantity { get; set; }

    }
    public class BalansesMonitorList : DbContext
    {
        public DbSet<BalansesMonitor> balansesMonitors { get; set; }
    }
}



объявляю в контроллере процедуру вызова
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
  public ActionResult BalansesMonitor()
        {
            

            SqlConnection conn1 = new SqlConnection(ConnectionString);
            string MaterialCode;
            string MaterialName;
            string Lot;
            string BlStatus;
            string BlStatusDesc;
            string LocationName;
            double Quantity;


            try
            {
                conn1.Open();
                conn1.Close();
            }
            catch (Exception xx)
            {
                BMList = null;
                return View(BMList); //return Redirect
            }
            string SqlString = "select * from fn_select_BalancesDeforst()";
            SqlCommand comm1 = new SqlCommand(SqlString, conn1);
            try
            {
                conn1.Open();
            }
            catch ( Exception xx)
            {
                BMList = null;
                return View(BMList); //return Redirect
            }
                if (conn1.State== ConnectionState.Open)
            {
                SqlDataReader MyDr = comm1.ExecuteReader();
                Inspinia_MVC5_SeedProject.Models.BalansesMonitor bm;
              //  BMlist.Clear();

                while (MyDr.Read())
                {
                    MaterialCode = MyDr["MaterialCode"].ToString();
                    MaterialName = MyDr["MaterialName"].ToString();
                    Lot = MyDr["Lot"].ToString();
                    BlStatus = MyDr["BlStatus"].ToString();
                    BlStatusDesc = MyDr["BlStatusDesc"].ToString();
                    LocationName = MyDr["LocationName"].ToString();
                    try
                    {
                        Quantity = Convert.ToDouble(MyDr["Quantity"].ToString());
                    }
                    catch (Exception xx)
                    {
                        Quantity = 0;
                    }
                    bm= new Inspinia_MVC5_SeedProject.Models.BalansesMonitor();
                    bm.MaterialCode = MaterialCode;
                    bm.MaterialName = MaterialName;
                    bm.Lot = Lot;
                    bm.BlStatus = BlStatus;
                    bm.BlStatusDesc = BlStatusDesc;
                    bm.LocationName = LocationName;
                    bm.Qantity = Quantity;

                    BMList.balansesMonitors.Add(new Models.BalansesMonitor {
                        MaterialCode = MaterialCode,
                        MaterialName = MaterialName,
                        Lot = Lot,
                        BlStatus = BlStatus,
                        BlStatusDesc = BlStatusDesc,
                        LocationName=LocationName,
                        Qantity=Quantity
                    });
            
                }
                MyDr.Close();
            }
            conn1.Close();
            return View();
        }


задаю страницу

выбирает нормально. но, когда доходит до BMList.balansesMonitors.Add
выдает сообщение
автор'One or more validation errors were detected during model generation:

WebApp1.Models.BalansesMonitor: : EntityType 'BalansesMonitor' has no key defined. Define the key for this EntityType.
balansesMonitors: EntityType: EntitySet 'balansesMonitors' is based on type 'BalansesMonitor' that has no keys defined.


хотя исходный пример с metanit отрабатывает прекрасно

что я делаю не так?
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894123
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно добавить в модель поле с атрибутом [Key]
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894124
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, можно было просто погуглить по тексту ошибки, не забывай о такой возможности
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894133
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Иногда кажется, что люди вообще не читают, что им пишут в сообщении об ошибке. А иногда там даже решение написано :)
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894134
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
Иногда кажется, что люди вообще не читают, что им пишут в сообщении об ошибке. А иногда там даже решение написано :)
в данном случае написано, но нужно быть чуть-чуть в теме, чтобы это понять. Но гугление по тексту ошибки наверняка даст ответ.

Мне больше вот это понравилось
raven_2008
хотя исходный пример с metanit отрабатывает прекрасно
типа, сходите на метанит, найдите, что я имел ввиду и сравните с моим кодом.
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894459
raven_2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
некорректно был задан сам вопрос

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

для начинающих

в модели:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace WebApplication4.Models
{
    public class BalansesMonitorList: List<BalansesMonitor>
    {
            public List<BalansesMonitor> balansesMonitorList { get; set; }

    }
}




в контроллере
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
        public ActionResult Monitor()
        {
            string ConnectionString = "Data Source=127.0.0.1;Initial Catalog=MyDB;Persist Security Info=True;User ID=uId;Password=pass";
            SqlConnection conn1 = new SqlConnection(ConnectionString);
            SqlCommand comm1;
            SqlDataReader MyDr;
            string CommandString= "select * from fn_select_BalancesDeforst()";
            BalansesMonitorList BML = new BalansesMonitorList();

            try
            {
                conn1.Open();

                comm1 = new SqlCommand( CommandString, conn1);
                MyDr = comm1.ExecuteReader();
                BML.Clear();
                while (MyDr.Read())
                {
                    BML.Add(new BalansesMonitor
                    {
                        MaterialCode = MyDr["MaterialCode"].ToString(),
                        MaterialName = MyDr["MaterialName"].ToString(),
                        Lot = MyDr["Lot"].ToString(),
                        BlStatus = MyDr["BlStatus"].ToString(),
                        BlStatusDesc = MyDr["BlStatusDesc"].ToString(),
                        LocationName=MyDr["LocationName"].ToString(),
                        Qantity=Convert.ToDouble(MyDr["Quantity"].ToString())
                    });

                }
                MyDr.Close();
                return View(BML);
            }
            catch (Exception xx)
            {
                return null;
            }
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894469
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
raven_2008
некорректно был задан сам вопрос
да, теперь корректней некуда
raven_2008
в базе висит несколько сотен скриптов
как организована вешалка скриптов? Почему под них надо таблицу создавать? О чем речь вообще?
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894518
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
raven_2008
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
bm= new Inspinia_MVC5_SeedProject.Models.BalansesMonitor();
                    bm.MaterialCode = MaterialCode;
                    bm.MaterialName = MaterialName;
                    bm.Lot = Lot;
                    bm.BlStatus = BlStatus;
                    bm.BlStatusDesc = BlStatusDesc;
                    bm.LocationName = LocationName;
                    bm.Qantity = Quantity;

                    BMList.balansesMonitors.Add(new Models.BalansesMonitor {
                        MaterialCode = MaterialCode,
                        MaterialName = MaterialName,
                        Lot = Lot,
                        BlStatus = BlStatus,
                        BlStatusDesc = BlStatusDesc,
                        LocationName=LocationName,
                        Qantity=Quantity
                    });



этот кусок кода никому не показался странным?
...
Рейтинг: 0 / 0
отображение результатов выборки на web-странице MVC-приложения
    #39894541
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чо ты сразу в БД прямо из браузера не лазишь?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / отображение результатов выборки на web-странице MVC-приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]