Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
1

Не работает вызов хранимую процедуру asp net mvc (EF)

13.02.2020, 11:46. Просмотров 302. Ответов 13
Метки нет (Все метки)

Здравствуйте, выводит ошибку при выводе. не могу найти и исправить. помогите плз.
Хранимые процедуры:
SQL
1
2
3
4
5
6
7
8
CREATE PROCEDURE [dbo].[Otchet]
    @param1 DATE,
    @param2 DATE
AS
    SELECT id_sotrud, Uslugis.id_usl, Uslugis.price_usl 
    FROM [Obsledovanies],[Uslugis] 
    WHERE data_posesh >= @param1 AND data_posesh <= @param2
RETURN 0
HomeController:
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
public ActionResult IndexOtchet()
        {
            using (var db = new Context())
            {
                var param1 = new SqlParameter();
                param1.ParameterName = "@param1";
                param1.SqlDbType = SqlDbType.Int;
                param1.SqlValue = "01.01.2020";
 
                var param2 = new SqlParameter();
                param2.ParameterName = "@param2";
                param2.SqlDbType = SqlDbType.NVarChar;
                param2.SqlValue = "03.01.2020";
 
                var result = db.Obsledovanies.SqlQuery("Otchet @param1,@param2", param1, param2).ToList();
                return Json(result, JsonRequestBehavior.AllowGet);
 
                //var parameter = "01.01.2020";
                //var parameter2 = "03.01.2020";
                //var query = db.Database.SqlQuery<Context>("Otchet @param1,@param2",
                //               new SqlParameter("@param1", parameter)).ToList();
                //return Json(query, JsonRequestBehavior.AllowGet);
            }
        }
и вывод(Представление):
HTML5
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
@model IEnumerable<VetKlinika.Models.Obsledovanie>
 
@{
    ViewBag.Title = "IndexOtchet";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<table align="center">
    <tr>
        <th>Сотруд</th>
        <th>Услуги</th>
        <th>Цена</th>
    </tr>
    <br />
    @foreach (var item in Model)
    {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.id_sotrud)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.id_usl)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Uslugi.price_usl)
        </td>
    </tr>
    }
</table>
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2020, 11:46
Ответы с готовыми решениями:

Client ASP.NET MVC + Angular и Server side ASP.NET WEB.API
Доброго времени суток! Не первый день бьюсь над задачей, не могу понять в чем причина. Хочу...

Как вызвать хранимую процедуру из ASP
Здравствуйте! Не подскажете как правильно вызвать хранимую процедуру, я вот так вызываю,но он...

Как запустить хранимую процедуру из html или asp?
Как запустить хранимую процедуру(SQL Server ) из html или asp?

связь MVC и MVVM. Трудно ли освоить mvc параллельно с изучением ASP.NET
Здравствуйте, начал изучать ASP.NET для курсовой работы. Начал читать &quot;Мак-Дональд М., Фримен А.,...

13
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
13.02.2020, 11:47  [ТС] 2
вот ошибка
0
Миниатюры
Не работает вызов хранимую процедуру asp net mvc (EF)  
Рядовой
1074 / 601 / 241
Регистрация: 17.05.2015
Сообщений: 2,344
Завершенные тесты: 1
13.02.2020, 12:01 3
wymaxep, а посмотреть, что пришло из бд вы не хотите?
0
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
13.02.2020, 12:11  [ТС] 4
Рядовой, то есть, выполнить в бд эту процедуру? что выводит? или что?
0
Рядовой
1074 / 601 / 241
Регистрация: 17.05.2015
Сообщений: 2,344
Завершенные тесты: 1
13.02.2020, 12:14 5
wymaxep, нет, покажите что получает представление
0
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
13.02.2020, 12:20  [ТС] 6
Рядовой, как раз вот эта ошибка, которую я прислал. то есть, ничего не выводит.
0
Рядовой
1074 / 601 / 241
Регистрация: 17.05.2015
Сообщений: 2,344
Завершенные тесты: 1
13.02.2020, 12:22 7
wymaxep, так вы не пытайтесь вывести, а просто в дебаге покажите что там в model
0
carrotik
262 / 201 / 64
Регистрация: 21.02.2019
Сообщений: 812
13.02.2020, 12:44 8
.. а разве вызов хранимки в EF так делается? (сам никогда не пользовался, но буквари вещают иное) .. т.е. для EF6 должно быть что-то типа:
C#
1
2
3
context.Database.ExecuteSqlCommand(
        "EXECUTE dbo.Otchet", param1, param2");
}
для EF Core соответственно:

C#
1
2
3
var blogs = context.Blogs
    .FromSqlRaw("EXECUTE dbo.GetMostPopularBlogs")
    .ToList();
.. примеры отсюда
https://docs.microsoft.com/en-us/ef/core/querying/raw-sql
0
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
13.02.2020, 12:44  [ТС] 9
Рядовой,
C#
1
2
3
4
5
 public ActionResult IndexOtchet()
        {
            var courses = db.Obsledovanies.Include(c => c.Uslugi)
                .Include(c=> c.Sotrud);
            return View(courses.ToList());
0
Изображения
 
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
13.02.2020, 14:04  [ТС] 10
carrotik, сделал так,
C#
1
var result = db.Database.ExecuteSqlCommand("EXECUTE dbo.Otchet", param1, param2);
та же ошибка.

Добавлено через 4 минуты
нашел ошибку в контроле.
Цитата Сообщение от wymaxep Посмотреть сообщение
var param1 = new SqlParameter();
                param1.ParameterName = "@param1";
                param1.SqlDbType = SqlDbType.Int;
                param1.SqlValue = "01.01.2020";
var param2 = new SqlParameter();
                param2.ParameterName = "@param2";
                param2.SqlDbType = SqlDbType.NVarChar;
                param2.SqlValue = "03.01.2020";
"int и NVarChar" должно быть дата

Добавлено через 59 минут
я думаю что не правильно работает из за этого
C#
1
return Json(result, JsonRequestBehavior.AllowGet);
как можно по другому написать?
0
IamRain
1829 / 1448 / 433
Регистрация: 02.08.2011
Сообщений: 4,219
13.02.2020, 20:43 11
Цитата Сообщение от wymaxep Посмотреть сообщение
я думаю что не правильно работает из за этого
Это здесь не при чем, красным по желтому же написано ,что ошибка при выполнении запроса.
Сделайте аналогично:
C#
1
2
3
4
5
// SqlParameter-ру можно установить нужный тип.
SqlParameter latParam = new SqlParameter("lat", latitude);       
     SqlParameter lngParam = new SqlParameter("long", longitude);
     object[] parameters = new object[] { latParam , lngParam };
     var stores = db.SomeDbSet.SqlQuery(SQL, parameters);
0
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
15.02.2020, 13:34  [ТС] 12
IamRain, я сделал вот так. добавил еще преобразование на дату.
C#
1
2
3
4
5
6
7
8
            SqlParameter Param1 = new SqlParameter("ot", "01.01.2020");
            SqlParameter Param2 = new SqlParameter("do", "03.01.2020");
            Param1.SqlDbType = SqlDbType.Date;
            Param2.SqlDbType = SqlDbType.Date;
            object[] parameters = new object[] { Param1, Param2 };
            string SQL = "SELECT * FROM dbo.Obsledovanies where data_posesh >= 'ot' and data_posesh <= 'do'";
            var stores = db.Obsledovanies.SqlQuery(SQL, Param1, Param2);
            return Json(stores, JsonRequestBehavior.AllowGet);
и все равно ошибка. только другая. где я допустил ошибку? помогите плз.
0
Миниатюры
Не работает вызов хранимую процедуру asp net mvc (EF)  
IamRain
1829 / 1448 / 433
Регистрация: 02.08.2011
Сообщений: 4,219
15.02.2020, 14:42 13
Передавайте объект DateTime, а не строку - об этом и текст ошибки. Тот случай, кода надо радоваться, что получаете ошибку, но уже другую. Значит прогресс есть.
0
wymaxep
3 / 2 / 1
Регистрация: 14.03.2018
Сообщений: 178
15.02.2020, 15:11  [ТС] 14
IamRain, это да,согласен. я сделал на проверку, без дат точнее. просто вывести все. но не пойму почему он так выводит?
0
Миниатюры
Не работает вызов хранимую процедуру asp net mvc (EF)  
15.02.2020, 15:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2020, 15:11

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

ASP.NET Core или ASP.NET MVC
Здравствуйте После изучение основ c# я решил выбрать направление веб разработки. Подскажите какие...

ASP.NET MVC VS .NET CORE MVC
Ку, можете подкинуть статейку где подробно описывается разница между этими двумя технологиями плз....

Нужно вызвать хранимую процедуру (запрашивает параметры и возвращает значение) из ASP (VBscript)
Привет! Я использую СУБД FoxPro. Мне нужно вызвать хранимую процедуру (запрашивает параметры и...

ASP.NET или ASP.NET MVC
Посоветуйте какую технологию лучше начать изучать ASP.NET или ASP.NET MVC. Не содной ни c другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.