我是网络编程的业余爱好者。 目前正在使用c#,MVC,js / ts和jquery。
当我尝试将SaveChanges保存到我的数据库时,我收到此错误:
" ' System.Data.Entity.Infrastructure.DbUpdateException'发生在 EntityFramework.dll。附加信息:发生错误 更新条目。有关详细信息,请参阅内部异常"
没有内心细节。这就是我想要做的。
Order order = new Order();
TryUpdateModel(order);
try
{
if (string.Equals(values["PromoCode"], PromoCode,
StringComparison.OrdinalIgnoreCase) == false)
{
return View(order);
}
else
{
order.Username = User.Identity.Name;
order.OrderDate = DateTime.Now;
//Save Order
storeDB.Orders.Add(order);
storeDB.SaveChanges();
//Process the order
var cart = ShoppingCart.GetCart(this.HttpContext);
cart.CreateOrder(order);
return RedirectToAction("Complete",
new { id = order.OrderId });
}
}
catch (System.Data.Entity.Core.UpdateException e)
{
return View(order);
}
catch (System.Data.Entity.Infrastructure.DbUpdateException ex) //DbContext
{
Console.WriteLine(ex.InnerException);
return View(order);
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException);
//Invalid - redisplay with errors
return View(order);
}
在cart.CreateOrder(order);
这就是CreateOrder(订单)所做的事情
decimal orderTotal = 0;
var cartItems = GetCartItems();
// Iterate over the items in the cart,
// adding the order details for each
foreach (var item in cartItems)
{
var orderDetail = new OrderDetail
{
GameId = item.GameId,
OrderId = order.OrderId,
UnitPrice = item.Game.Price,
Quantity = item.Count
};
// Set the order total of the shopping cart
orderTotal += (item.Count * item.Game.Price);
storeDB.OrderDetails.Add(orderDetail);
}
// Set the order's total to the orderTotal count
order.Total = orderTotal;
// Save the order
storeDB.SaveChanges();
// Empty the shopping cart
EmptyCart();
// Return the OrderId as the confirmation number
return order.OrderId;
它在storeDB.SaveChanges()中给出了错误消息; 一切都按照它的方式拼写。
你们认为我错过了什么?
答案 0 :(得分:0)
DbUpdateException主要是由数据库约束违规引起的。您应该显示处理DbUpdateException的其他代码:
$(function() {
var secondsToWait = 2;
setTimeout(function() {
$('#content-selector').fadeIn();
}, secondsToWait * 1000);
});
答案 1 :(得分:0)
我们想通了。将更改保存到数据库时,我们忘记填写该条目的列。非常愚蠢= P.我和一个合伙人一起工作,并认为他们照顾了所有这些东西。
谢谢你们