我已经在我的数据库,名为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