Я создал таблицу в моей базе данных, которая называется AccountCoupon
, которая определяется как это в AccountCoupon.cs
в DataModel.tt
:Ошибка вставки в базу данных - значение не может быть пустым
public partial class AccountCoupon
{
public string CouponID { get; set; }
public int Days { get; set; }
}
Я затем создает идентификатор случайным образом с помощью голец массив доступных символов и для цикла, а затем добавить его в базу данных:
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», похоже, что это выходит за рамки вашего вызова db. – Kritner
@greenhorn второй аргумент Random.Next() является эксклюзивным верхним пределом, поэтому случайный никогда не будет генерировать значение coupnCharacters.Count() , поэтому он действителен, как и был опубликован. – LInsoDeTeh