簡體   English   中英

日期是01/01/0001而不是數據庫中的日期?

[英]Date is 01/01/0001 and not the date that is in the database?

我在我的sql server 2008 r2數據庫中有這一行,但我不明白:

2012-12-06 11:00:36.703 and is of type DATETIME

當我在我的視圖中顯示它時:

Mon, Jan 1, 0001 

這是我的代碼:

var allNews = ZincService.NewsService.GetNewsPostsForId(id);

List<Zinc.Web.Areas.News.ViewModels.Home.NewsPostsViewModel> newsItems = new List<NewsPostsViewModel>();

foreach (var newsItem in allNews)
{ 
  NewsPostsViewModel newsItemViewModel = new NewsPostsViewModel();
  newsItemViewModel.CommentDate = String.Format("{0:ddd, MMM d, yyyy}", newsItem.CommentDate);
}

public class NewsPostsViewModel
{
  public Entities.News.News MainNews { get; set; }
  public virtual string News { get; set; }
  public virtual int NewsId { get; set; }
  public virtual string CommentDate { get; set; }
}

  public List<DataModels.News.NewsPostsDataModel> GetNewsPostsForId(int id)
{
  using (SqlConnection conn = new SqlConnection(ZincModelContainer.CONNECTIONSTRING))
  {
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      cmd.CommandType = System.Data.CommandType.StoredProcedure;
      cmd.CommandText = "[News].[GetNewsPostsForId]";

      SqlParameter param = new SqlParameter("@Id", System.Data.SqlDbType.Int);
      param.Value = id;
      cmd.Parameters.Add(param);

      List<DataModels.News.NewsPostsDataModel> news = new List<DataModels.News.NewsPostsDataModel>();

      using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
      {
        DataTable dt = new DataTable();
        adapter.Fill(dt);

        foreach (DataRow row in dt.Rows)
        {
          string message = Convert.ToString(row["NewsDescription"]);
          news.Add(new DataModels.News.NewsPostsDataModel { NewsPostId = id ,Message = message});
        }
      }

      return news;
    }
  }
}

public class NewsPostsDataModel
{
  public virtual int NewsPostId { get; set; }
  public virtual string Message { get; set; }
  public virtual DateTime CommentDate { get; set; }
}

有人能幫助我嗎?

這就是問題:

news.Add(new DataModels.News.NewsPostsDataModel { NewsPostId = id ,Message = message});

你沒有在這里填充CommentDate ,所以它有默認值DateTime.MinValue

當然,我們現在無法判斷您的存儲過程是否完全返回值,但假設它存在,您應該從DataRow獲取它並將其放入模型中...

在你修好的代碼,你應該退一步,想想你的診斷過程。 你試過調試嗎? 添加日志? 您應該能夠非常快速地看到模型中沒有CommentDate ,然后嘗試找出為什么沒有CommentDate ,這應該會讓您回到創建實例的代碼模型。 如果您可以改進診斷過程,則可以通過不必提出盡可能多的問題來顯着加快您未來的發展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM