当我想保存我的 table 时,db.savechanges() 给出一个错误,因为该数据之前已被使用
When I want to save my table, db.savechanges() gives an error because that data has been used before
在连接到我的 .NET MVC 项目的数据库中,其中一个表包含唯一键。如果 db.savechanges()
操作失败,如何检查此值是否已输入或如何显示错误消息?
///我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Hayvan_id,Kupe_no,Kilo,Irk,Detay,Lokasyon,Turu,Hisse,Kayit_Tarihi,fiyat")] Hayvan_Tablosu hayvan_Tablosu)
{
var SaveTrue = db.SaveChanges();
if (ModelState.IsValid)
{
db.Hayvan_Tablosu.Add(hayvan_Tablosu);
db.SaveChanges(); ///I am getting the error here.
return RedirectToAction("Index");
}
return View(hayvan_Tablosu);
}
您可以在try/catch语句中执行您的操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Hayvan_id,Kupe_no,Kilo,Irk,Detay,Lokasyon,Turu,Hisse,Kayit_Tarihi,fiyat")] Hayvan_Tablosu hayvan_Tablosu)
{
try {
var SaveTrue = db.SaveChanges();
if (ModelState.IsValid)
{
db.Hayvan_Tablosu.Add(hayvan_Tablosu);
db.SaveChanges(); ///I am getting the error here.
return RedirectToAction("Index");
}
}
catch(Exception e) {
// Do something with your error.
// E.g.:
return View(new { Error = true, Message = e.Message });
}
return View(hayvan_Tablosu);
}
您可以使用 db.SaveChanges()
中的 return 值
int val = db.SaveChanges();
if(val > 0)
{
// the value was entered
}
else
{
// error message
}
最好在开始时检查 UNIQUE KEY
是否已经存在。
if(db.Hayvan_Tablosu.Any(x=>x.UniqueColumn == hayvan_Tablosu.UniqueColumn))
{
ModelState.AddModelError("", "UniqueColumn Already Exists");
return View(hayvan_Tablosu);
}
else
{
//add to list and call save changes.
}
在连接到我的 .NET MVC 项目的数据库中,其中一个表包含唯一键。如果 db.savechanges()
操作失败,如何检查此值是否已输入或如何显示错误消息?
///我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Hayvan_id,Kupe_no,Kilo,Irk,Detay,Lokasyon,Turu,Hisse,Kayit_Tarihi,fiyat")] Hayvan_Tablosu hayvan_Tablosu)
{
var SaveTrue = db.SaveChanges();
if (ModelState.IsValid)
{
db.Hayvan_Tablosu.Add(hayvan_Tablosu);
db.SaveChanges(); ///I am getting the error here.
return RedirectToAction("Index");
}
return View(hayvan_Tablosu);
}
您可以在try/catch语句中执行您的操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Hayvan_id,Kupe_no,Kilo,Irk,Detay,Lokasyon,Turu,Hisse,Kayit_Tarihi,fiyat")] Hayvan_Tablosu hayvan_Tablosu)
{
try {
var SaveTrue = db.SaveChanges();
if (ModelState.IsValid)
{
db.Hayvan_Tablosu.Add(hayvan_Tablosu);
db.SaveChanges(); ///I am getting the error here.
return RedirectToAction("Index");
}
}
catch(Exception e) {
// Do something with your error.
// E.g.:
return View(new { Error = true, Message = e.Message });
}
return View(hayvan_Tablosu);
}
您可以使用 db.SaveChanges()
int val = db.SaveChanges();
if(val > 0)
{
// the value was entered
}
else
{
// error message
}
最好在开始时检查 UNIQUE KEY
是否已经存在。
if(db.Hayvan_Tablosu.Any(x=>x.UniqueColumn == hayvan_Tablosu.UniqueColumn))
{
ModelState.AddModelError("", "UniqueColumn Already Exists");
return View(hayvan_Tablosu);
}
else
{
//add to list and call save changes.
}