Как передать пользовательский ввод в качестве переменной для хранимой процедуры C#, .NET 4.8, ASP.NET MVC, SQL ServerC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Как передать пользовательский ввод в качестве переменной для хранимой процедуры C#, .NET 4.8, ASP.NET MVC, SQL Server

Сообщение Гость »


Я новичок и хотел реализовать этот проект на практике, но не могу понять этого хоть убей. Проект построен с использованием C#, .NET Framework, ASP.NET MVC и Microsoft SQL Server.

Проект должен иметь возможность принимать введенные пользователем данные («OrderNumber») и передавать их в качестве переменной в хранимую процедуру. Процедура проверяет БД на наличие строки в таблице с этим номером заказа. Если он не найден, он выдает ошибку, а если находит, проверяет другой столбец под названием «ScanStatus». Это логическое значение: если оно равно 1, оно выдает ошибку «уже отсканировано», а если оно равно 0, оно обновляется до 1. Я не могу заставить это работать хоть убей, но вот код ниже. Любая помощь будет очень признательна.

Это контроллер

с использованием SpeedPass.Data; использование системы; использование System.Collections.Generic; использование System.ComponentModel.DataAnnotations.Schema; используя System.Linq; использование System.Web; использование System.Web.Mvc; пространство имен SpeedPass.Controllers { общественный класс OrderController: Контроллер { частный SpeedPassDbContext db = новый SpeedPassDbContext (); public ActionResult VerifyScanStatus (строка Ordr_Number) { // Получаем заказ из базы данных по номеру заказа var order = db.Orders.FirstOrDefault(o => o.Order_Number == Ordr_Number); если (порядок!= ноль) { // Проверка столбца состояния сканирования если (order.Scan_Status == true) { ViewBag.Message = "Статус сканирования: Просканировано"; } иначе, если (order.Scan_Status == false) { ViewBag.Massage = "Статус сканирования: Не сканировано"; } еще { ViewBag.Message = "Статус сканирования: Неизвестно"; } } еще { ViewBag.Message = "Заказ не найден."; } вернуть просмотр(); } // Не забудьте удалить DbContext защищенное переопределение void Dispose (удаление bool) { если (удалить) { БД.Dispose(); } base.Dispose(удаление); } } } Это класс модели:

с использованием системы; использование System.Collections.Generic; использование System.ComponentModel.DataAnnotations; используя System.Linq; использование System.Web; пространство имен SpeedPass.Models { Приказы общественного класса { [Ключ] общественная строка Order_Number {get; набор; } [Необходимый] общественная строка Customer_Number {get; набор; } [Необходимый] общественный bool Scan_Status {получить; набор; } } } Это DbContext

с использованием системы; использование SpeedPass.Models; использование System.Collections.Generic; использование System.Data.Entity; используя System.Linq; использование System.Web; пространство имен SpeedPass.Data { общедоступный класс SpeedPassDbContext: DbContext { public SpeedPassDbContext() : base("Источник данных=SBSQL\\SB_SANDBOX_DB;Начальный каталог=testDB;Встроенная безопасность=True;Время ожидания соединения=30;Шифрование=False;Сертификат доверенного сервера=False;Намерение приложения=ReadWrite;Отказоустойчивость нескольких подсетей= ЛОЖЬ") { } public DbSet Orders {get; набор; } public DbSet Клиенты {get; набор; } } } Это хранимая процедура

Используйте [testDB] ИДТИ УСТАНОВИТЬ ANSI_NULL ВКЛ. ИДТИ ВКЛЮЧИТЬ QUOTED_IDENTIFIER ИДТИ ИЗМЕНИТЬ ПРОЦЕДУРУ [dbo].[UpdateScanStatus] @OrderNumber варчар(8) КАК НАЧИНАТЬ ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1 ИЗ заказов, ГДЕ Order_Number = @OrderNumber) Начинать ОБЪЯВИТЬ БИТ @ScanStatus; ВЫБЕРИТЕ @ScanStatus = ScanStatus ИЗ заказов ГДЕ Номер_заказа = @Номер_заказа ЕСЛИ @ScanStatus = 1 НАЧИНАТЬ RAISERROR('Заказ уже проверен!', 23,1); КОНЕЦ ЕЩЕ НАЧИНАТЬ ОБНОВИТЬ заказы УСТАНОВИТЬ Статус_Сканирования = 1 ГДЕ Order_Number = @OrderNumber НАПЕЧАТАЙТЕ 'Успешно!'; КОНЕЦ КОНЕЦ ЕЩЕ НАЧИНАТЬ RAISERROR('Ордер не существует!'22,1); КОНЕЦ КОНЕЦ; Я хотел бы предоставить здесь больше информации, хотя, поскольку я новичок, я не знаю, что исследовать. Я просматривал документацию Microsoft, уголок C# и некоторые другие сайты, использующие разные версии фреймворков, а также инструменты построения лесов. В значительной степени до этого момента методом проб и ошибок. Хранимая процедура занимается поиском и обновлением столбцов БД, а также обработкой ошибок.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сбой при выполнении хранимой процедуры C#/SQL Server/RepoDB 1.13.1 для выходных параметров
    Anonymous » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Как PHP получает доступ к выходным параметрам хранимой процедуры SQL Server
    Anonymous » » в форуме Php
    0 Ответы
    105 Просмотры
    Последнее сообщение Anonymous
  • Вызов хранимой процедуры SQL Server в Spark
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Получение значения выходного параметра из хранимой процедуры Microsoft SQL Server с помощью Laravel
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Проблема, связанная с выполнением хранимой процедуры в SQL Server
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»