将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。该语句已终止
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. The statement has been terminated
我的模型中有以下代码
public int Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public DateTime DateAdded { get; set; }
[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }
[Display(Name = "Number in Stock")]
public byte NumberInStock { get; set; }
public Genre Genre { get; set; }
[Display(Name = "Genre")]
[Required]
public byte GenreId { get; set; }
这是我的控制器编码器错误点显示
[HttpPost]
public ActionResult Create(Movie movie)
{
_context.Movies.Add(movie);
_context.SaveChanges();
return RedirectToAction("Index", "Movies");
}
这是风景
<div class="form-group">
@Html.LabelFor(m => m.Movie.ReleaseDate)
@Html.TextBoxFor(m => m.Movie.ReleaseDate, "{0:d MMM yyyy}", new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(m => m.Movie.GenreId)
@Html.DropDownListFor(m => m.Movie.GenreId, new SelectList(Model.Genres, "Id", "Name"), "Select Movie Genre", new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(m => m.Movie.NumberInStock)
@Html.TextBoxFor(m => m.Movie.NumberInStock, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
当我点击提交按钮时,出现错误:
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
知道这个问题吗?我假设这是一个日期时间问题,但我无法解决问题。我是这方面的初学者。
日期时间列 "DateAdded" 在 sql 中标记为 不可为空 。
选项 1(更改控制器):
[HttpPost]
public ActionResult Create(Movie movie)
{
//setdate
movie.DateAdded = Datetime.Now;
_context.Movies.Add(movie);
_context.SaveChanges();
return RedirectToAction("Index", "Movies");
}
选项 2(更改模型)
public class Movie
{
public int Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public DateTime DateAdded { get; set; } = Datetime.Now;
[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }
[Display(Name = "Number in Stock")]
public byte NumberInStock { get; set; }
public Genre Genre { get; set; }
[Display(Name = "Genre")]
[Required]
public byte GenreId { get; set; }
}
只需将 DateAdded 列更改为 datetime2 而不是像这样的数据时间。See Image
我的模型中有以下代码
public int Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public DateTime DateAdded { get; set; }
[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }
[Display(Name = "Number in Stock")]
public byte NumberInStock { get; set; }
public Genre Genre { get; set; }
[Display(Name = "Genre")]
[Required]
public byte GenreId { get; set; }
这是我的控制器编码器错误点显示
[HttpPost]
public ActionResult Create(Movie movie)
{
_context.Movies.Add(movie);
_context.SaveChanges();
return RedirectToAction("Index", "Movies");
}
这是风景
<div class="form-group">
@Html.LabelFor(m => m.Movie.ReleaseDate)
@Html.TextBoxFor(m => m.Movie.ReleaseDate, "{0:d MMM yyyy}", new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(m => m.Movie.GenreId)
@Html.DropDownListFor(m => m.Movie.GenreId, new SelectList(Model.Genres, "Id", "Name"), "Select Movie Genre", new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(m => m.Movie.NumberInStock)
@Html.TextBoxFor(m => m.Movie.NumberInStock, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
当我点击提交按钮时,出现错误:
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
知道这个问题吗?我假设这是一个日期时间问题,但我无法解决问题。我是这方面的初学者。
日期时间列 "DateAdded" 在 sql 中标记为 不可为空 。
选项 1(更改控制器):
[HttpPost]
public ActionResult Create(Movie movie)
{
//setdate
movie.DateAdded = Datetime.Now;
_context.Movies.Add(movie);
_context.SaveChanges();
return RedirectToAction("Index", "Movies");
}
选项 2(更改模型)
public class Movie
{
public int Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public DateTime DateAdded { get; set; } = Datetime.Now;
[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }
[Display(Name = "Number in Stock")]
public byte NumberInStock { get; set; }
public Genre Genre { get; set; }
[Display(Name = "Genre")]
[Required]
public byte GenreId { get; set; }
}
只需将 DateAdded 列更改为 datetime2 而不是像这样的数据时间。See Image