C# WPF MVVM – вставка данных модели в базу данных SQL ServerC#

Место общения программистов C#
Ответить
Anonymous
 C# WPF MVVM – вставка данных модели в базу данных SQL Server

Сообщение Anonymous »


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

Мои настройки:
[*]OverledeneModel — содержит данные [*]OverledeneView — содержит видимые части. [*]OverledeneViewModel — содержит логику [*]IOverledeneRepository — содержит команды [*]OverledeneRepository — содержит фактические запросы к базе данных.
Когда пользователь нажимает кнопку «Включить», модель представления проверяет, не являются ли обязательные поля нулевыми или пробелами в CanExecuteSaveCommand, следующим шагом является ExecuteSaveCommand, который содержит.

if (UitvaartLeider.UitvaartId == Guid.Empty) { вар AddUitvaartleider = overledeneRepository.AddUitvaartleider; if (AddUitvaartleider.ToString() != "InsertUitvaartleiderSucces") throw new Exception("Вставка Uitvaarleider не удалась"); } еще { вар EditUitvaartleider = overledeneRepository.EditUitvaartleider; MessageBox.Show(EditUitvaartleider.ToString()); if (EditUitvaartleider.ToString() != "UpdateUitvaartLeiderSucces") throw new Exception("Обновление Uitvaartleider не удалось"); } Однако строка

var EditUitvaartleider = overledeneRepository.EditUitvaartLeider; не выполняется.

публичный класс OverledeneRepository: RepositoryBase, IOverledeneRepository { общедоступная строка AddUitvaartleider (OverledeneUitvaartleiderModel uitvaarLeiderModel) { используя (var Connection = GetConnection()) используя (команда var = новая SqlCommand()) { соединение.Открыть(); команда.Соединение = соединение; Command.CommandText = "ВСТАВИТЬ В [OverledeneUitvaartleider] ([UitvaartId], [PersonelId], [Uitvaartnummer]) ЗНАЧЕНИЯ (@uitvaartId', @personeelId', @uitvaartNummer)"; Command.Parameters.Add("@uitvaartId", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaarLeiderModel.UitvaartId; Command.Parameters.Add("@personeelId", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaarLeiderModel.PersoneelId; Command.Parameters.Add("@uitvaartNummer", System.Data.SqlDbType.NVarChar).Value = uitvaarLeiderModel.Uitvaartnummer; } вернуть «InsertUitvaartleiderSucces»; } //Редактирование существующей регистрации общедоступная строка EditUitvaartleider (OverledeneUitvaartleiderModel uitvaartleiderModel) { MessageBox.Show("выполнено?"); используя (var Connection = GetConnection()) используя (команда var = новая SqlCommand()) { соединение.Открыть(); команда.Соединение = соединение; Command.CommandText = "ОБНОВЛЕНИЕ [OverledeneUitvaartleider] SET [PersonelId] = @UitvaartLeiderId, [Uitvaartnummer] = @Uitvaartnummer WHERE [UitvaartId] = @UitvaartGuid"; Command.Parameters.Add("@UitvaartLeiderId", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaartleiderModel.PersonelId; Command.Parameters.Add("@Uitvaartnummer", System.Data.SqlDbType.VarChar).Value = uitvaartleiderModel.Uitvaartnummer; Command.Parameters.Add("@UitvaartGuid", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaartleiderModel.UitvaartId; команда.ExecuteNonQuery(); } MessageBox.Show("обновление завершено"); вернуть «Обновление завершено»; } } публичный интерфейс IOverledeneRepository { ////////////////// // СОЗДАВАТЬ НОВОЕ // ////////////////// строка AddUitvaartleider (OverledeneUitvaartleiderModel uitvaarLeiderModel); //////////////////// // РЕДАКТИРОВАНИЕ И ОБНОВЛЕНИЕ // //////////////////// строка EditUitvaartleider (OverledeneUitvaartleiderModel uitvaartleiderModel); } Я прочитал stackoverflow и Google, но не могу понять, почему это не работает.

Данные находятся в OverledeneModel:

публичный класс OverledeneUitvaartleiderModel: ViewModelBase, IDataErrorInfo { частный Guid _uitvaartId; частный Guid _personeelId; частная строка? _personeelНаам; частная строка? _uitvaartNummer; общедоступный Guid { получить {возврат _uitvaartId; } установить {_uitvaartId = значение; OnPropertyChanged(nameof(UitvaartId)); } } общедоступный идентификатор PersoneelId { получить {вернуться _personeelId; } установить {_personeelId = значение; OnPropertyChanged(nameof(PersonelId)); } } публичная строка PersoneelNaam { получить {вернуться _personeelNaam; } установить {_personeelNaam = значение; OnPropertyChanged(nameof(PersonelNaam)); } } публичная строка Uitvaartnummer { получить {вернуться _uitvaartNummer; } установить {_uitvaartNummer = значение; OnPropertyChanged(nameof(Uitvaartnummer)); } } общедоступная строка Ошибка => string.Empty; общедоступная строка this [строка имя_столбца] { получать { строковый результат = ноль; если (PersonelId == Guid.Empty || (PersonelId == null) || (string.IsNullOrEmpty(Uitvaartnummer))) { result = "Проверка верна."; } вернуть результат; } } } Поэтому я совершенно не понимаю, почему он не выполняется.

Надеюсь, кто-нибудь сможет объяснить почему и поможет мне заставить это работать.

С уважением, Патрик
Ответить

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

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

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

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

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