我试图将视图中的数据发布到数据库中,但我似乎无法启动视图模型上的编辑功能,而且我也不知道为什么它不工作。
我的设置是:
OverledeneModel
-包含数据OverledeneView
-包含可见零件OverledeneViewModel
-包含逻辑IOverledeneRepository
-包含命令OverledeneRepository
-包含实际的数据库查询
当用户按下按钮“Volgende”时,视图模型正在检查CanExecuteSaveCommand
中的必填字段是否不为空或空白,下一步是ExecuteSaveCommand
,其中包含。
if (UitvaartLeider.UitvaartId == Guid.Empty)
{
var AddUitvaartleider = overledeneRepository.AddUitvaartleider;
if (AddUitvaartleider.ToString() != "InsertUitvaartleiderSucces")
throw new Exception("Uitvaarleider insert has failed");
}
else
{
var EditUitvaartleider = overledeneRepository.EditUitvaartleider;
MessageBox.Show(EditUitvaartleider.ToString());
if (EditUitvaartleider.ToString() != "UpdateUitvaartLeiderSucces")
throw new Exception("Uitvaartleider update has failed");
}
字符串
然而这条线
var EditUitvaartleider = overledeneRepository.EditUitvaartLeider;
型
没有被执行。
public class OverledeneRepository : RepositoryBase, IOverledeneRepository
{
public string AddUitvaartleider(OverledeneUitvaartleiderModel uitvaarLeiderModel)
{
using (var connection = GetConnection())
using (var command = new SqlCommand())
{
connection.Open();
command.Connection = connection;
command.CommandText = "INSERT INTO [OverledeneUitvaartleider] ([UitvaartId], [PersoneelId], [Uitvaartnummer]) VALUES (@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;
}
return "InsertUitvaartleiderSucces";
}
//Editing existing registration
public string EditUitvaartleider(OverledeneUitvaartleiderModel uitvaartleiderModel)
{
MessageBox.Show("executed?");
using (var connection = GetConnection())
using (var command = new SqlCommand())
{
connection.Open();
command.Connection = connection;
command.CommandText = "UPDATE [OverledeneUitvaartleider] SET [PersoneelId] = @UitvaartLeiderId, [Uitvaartnummer] = @Uitvaartnummer WHERE [UitvaartId] = @UitvaartGuid";
command.Parameters.Add("@UitvaartLeiderId", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaartleiderModel.PersoneelId;
command.Parameters.Add("@Uitvaartnummer", System.Data.SqlDbType.VarChar).Value = uitvaartleiderModel.Uitvaartnummer;
command.Parameters.Add("@UitvaartGuid", System.Data.SqlDbType.UniqueIdentifier).Value = uitvaartleiderModel.UitvaartId;
command.ExecuteNonQuery();
}
MessageBox.Show("done updating");
return "Done Updating";
}
}
public interface IOverledeneRepository
{
//////////////////
// CREATE & NEW //
//////////////////
string AddUitvaartleider(OverledeneUitvaartleiderModel uitvaarLeiderModel);
///////////////////
// EDIT & UPDATE //
///////////////////
string EditUitvaartleider(OverledeneUitvaartleiderModel uitvaartleiderModel);
}
的字符串
我已经阅读了stackoverflow和google,但我似乎不明白为什么它不工作。
数据位于OverledeneModel
:
public class OverledeneUitvaartleiderModel : ViewModelBase, IDataErrorInfo
{
private Guid _uitvaartId;
private Guid _personeelId;
private string? _personeelNaam;
private string? _uitvaartNummer;
public Guid UitvaartId
{
get { return _uitvaartId; }
set { _uitvaartId = value; OnPropertyChanged(nameof(UitvaartId)); }
}
public Guid PersoneelId
{
get { return _personeelId; }
set { _personeelId = value; OnPropertyChanged(nameof(PersoneelId)); }
}
public string PersoneelNaam
{
get { return _personeelNaam; }
set { _personeelNaam = value; OnPropertyChanged(nameof(PersoneelNaam)); }
}
public string Uitvaartnummer
{
get { return _uitvaartNummer; }
set { _uitvaartNummer = value; OnPropertyChanged(nameof(Uitvaartnummer)); }
}
public string Error => string.Empty;
public string this[string columnName]
{
get
{
string result = null;
if (PersoneelId == Guid.Empty ||
(PersoneelId == null) ||
(string.IsNullOrEmpty(Uitvaartnummer)))
{
result = "Validatie velden niet correct.";
}
return result;
}
}
}
型
所以我完全不知道它为什么不执行。
我希望有人能解释为什么,并帮助我使它的工作。
1条答案
按热度按时间rvpgvaaj1#
正如鲁弗爵士所指出的,我并没有在电话中传递一个论点。
字符串
应
型
这招奏效了