我已經在我的數據庫,名爲AccountCoupon
,這是在DataModel.tt
定義爲這樣的AccountCoupon.cs
創建一個表:錯誤插入到數據庫 - 值不能爲空
public partial class AccountCoupon
{
public string CouponID { get; set; }
public int Days { get; set; }
}
我再隨機生成的ID使用可用字符的字符數組,一個for循環,然後將其添加到數據庫:
public ActionResult Create()
{
if (!string.IsNullOrWhiteSpace(Request["CouponDays"]))
{
int days = 0;
int.TryParse(Request["CouponDays"], out days);
if (days > 0)
{
string cID = "";
for (int i = 0; i < 10; i++)
{
cID += couponCharacters[rand.Next(couponCharacters.Count())];
}
db.AccountCoupons.Add(new AccountCoupon { CouponID = cID, Days = days });
db.SaveChanges();
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
return View();
}
然而,當我嘗試將其添加到數據庫中,它拋出一個錯誤,說CouponID
爲NULL,那插入失敗。對我來說這是不可能的,因爲我只是給它分配了一個值。
索引「couponCharacters.Count()」在該項目不存在,爲此爲空。 – greenhoorn
你沒有收到編譯錯誤?從你發佈的'ID'看起來它會超出你的數據庫調用範圍 – Kritner
@greenhorn第二個Random.Next()參數是唯一的上限,所以random不會生成值coupnCharacters.Count() ,所以它的發佈是有效的。 – LInsoDeTeh