|
分類:[.NET 全般]
[C# visual studio2019]
毎度すいません。いつも助かっているのでまたの教えてもらいたいです。
毎回質問が似てるのですが、C#,Entity frameworkを使っての[UpDate]を試みてます。
SQLからTextBoxに入力されているID(主キー)を確認して、データがなければ[Insert]、あれば[UpDate]をボタン一つで実行してもらいたいのですが
[Insert]はできるのですが、[UpDate]だけcatchに入ってエラーを吐き出されます。
log内容
2022-01-18 11:59:51,418 ERROR [1] MainWindow.Form1 Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
場所 System.Data.Entity.Internal.InternalContext.SaveChanges()
場所 System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
場所 System.Data.Entity.DbContext.SaveChanges()
場所 MainWindow.Form1.Up_InserBtm_Click(Object sender, EventArgs e) 場所 \MainWindow\Form1.cs:行 134
SaveChanges()がうまく動作してない感じです
[code]
private void Up_InserBtm_Click(object sender, EventArgs e)
{
var idBox = PatientIDBox;
var nBox1 = PatientsNameBox1;
var nBox2 = PatientsNameBox2;
var nBox3 = PatientsNameBox3;
var bdBox = PatientsBDBox;
var sexBox = PatientsSexBox;
var ageBox = PatientsAgeBox;
using (var pdbContext = new PDBContext())
{
try
{
var patient = pdbContext.M_Patient.FirstOrDefault(x => x.PatientID == idBox.Text);
if (patient == null)
{
pdbContext.M_Patient.Add(new M_Patient
{
PatientID = idBox.Text,
PatientsName1 = nBox1.Text,
PatientsName2 = nBox2.Text,
PatientsName3 = nBox3.Text,
PatientsBirthDate = bdBox.Text,
PatientsSex = sexBox.Text,
PatientsAge = ageBox.Text,
InsertDate = DateTime.Now,
UpdateDate = DateTime.Now
});
}
else //ここがUpdate文のつもり
{
M_Patient add_Patient = new M_Patient
{
PatientsName1 = nBox1.Text,
PatientsName2 = nBox2.Text,
PatientsName3 = nBox3.Text,
PatientsBirthDate = bdBox.Text,
PatientsSex = sexBox.Text,
PatientsAge = ageBox.Text,
InsertDate = DateTime.Now,
UpdateDate = DateTime.Now
};
pdbContext.M_Patient.Add(add_Patient);
}
pdbContext.SaveChanges();
}
catch (Exception ex)
{
LogManager.GetLogger(GetType().FullName).Error($"{ex.Message}\r\n{ex.StackTrace}");
while ((ex = ex.InnerException) != null)
{
LogManager.GetLogger(GetType().FullName).Error($"{ex.Message}\r\n{ex.StackTrace}");
}
}
finally
{
pdbContext.Dispose();
}
}
}
[/code]
何かわかればお願いしたいです
|