Как дата, которая правильно хранится в базе данных SQL Server Express, иногда отображается как 01 января 0001? - PullRequest
1 голос
/ 08 марта 2012

Это для веб-сайта газеты, который мы запускаем - он довольно занят (около 2 миллионов просмотров страниц в месяц) - поэтому не знаю, является ли трафик серьезной проблемой здесь или нет.

Но каждые несколько днейКазалось бы, совершенно случайная коллекция их последних историй показывает даты понедельника, 1 января 0001 года, в следующем формате:

this.NewsStory.DatePublished.ToString("dddd, MMMM d, yyyy")

Но если смотреть на данные с помощью инструментов управления SQL Server, они сохраняются совершенно правильно.И если я обновлю пул приложений для этого сайта, все даты вернутся к тому, чтобы быть правильными.

Есть идеи, что происходит?Больше проблемы с iis, чем с SQL или .net?Действительно потерянный с этим, когда это случается, кажется совершенно случайным, и какие истории это затрагивает, также кажется случайным.

Это Windows 2003 Server под управлением iis 6. Сайт закодирован в C #, а данные находятся вБаза данных SQL Server 2005 Express.

Благодарим вас за любые предложения.

Дополнительный код по запросу - вот код .net, вызывающий хранимую процедуру:

public static DataTable GetNewsStoryByURL(string url)
{
   DataTable table = NewsStoryData.GetDataTableTemplate();

   SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["FangleConnectionString"].ConnectionString);
   SqlCommand cmd = new SqlCommand("GetNewsStoryByURL", con);
   cmd.CommandType = CommandType.StoredProcedure;

   cmd.Parameters.Add(new SqlParameter("@url", SqlDbType.NVarChar));
   cmd.Parameters[0].Size = 512;
   cmd.Parameters[0].Value = url;

   try
   {
      con.Open();
      SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
      table.Load(reader);
      reader.Close();
      con.Close();
   }
   catch (Exception ex)
   {
      if (con.State != ConnectionState.Closed)
         con.Close();

      throw ex;
   }

   return table;
}

А вот и сама хранимая процедура:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[GetNewsStoryByURL]
( @url nvarchar(512) )
as
  select        
    dbo.fangle_News.[Identifier] as Identifier,
dbo.fangle_News.[GUID] as GUID,
dbo.fangle_News.[URL] as URL,
dbo.fangle_News.PageTitle as PageTitle,
dbo.fangle_News.MetaKeywords as MetaKeywords,
dbo.fangle_News.MetaDescription as MetaDescription,
dbo.fangle_News.NewsHeader as NewsHeader,
dbo.fangle_News.NewsAbstract as NewsAbstract,
dbo.fangle_News.NewsContent as NewsContent,
dbo.fangle_News.ImageUrl as ImageUrl,
dbo.fangle_News.ImageCaption as ImageCaption,
dbo.fangle_News.Image_W as Image_W,
dbo.fangle_News.Image_H as Image_H,
dbo.fangle_News.DateCreated as DateCreated,
dbo.fangle_News.DatePublished as DatePublished,
dbo.fangle_News.DateLastModified as DateLastModified,
dbo.fangle_News.CreatedBy as CreatedBy,
dbo.fangle_News.AuthoredBy as AuthoredBy,
dbo.fangle_News.LastModifiedBy as LastModifiedBy,
dbo.fangle_News.[Status] as Status,
dbo.fangle_News.Tags as Tags,
dbo.fangle_News.Priority as Priority,
dbo.fangle_News.Version as Version,
dbo.fangle_News.SendToTwitter as SendToTwitter,
dbo.fangle_News.TwitterText as TwitterText,
dbo.fangle_News.PicturePurchaseURL as PicturePurchaseURL
 from       
    dbo.fangle_News with (nolock)
 where      
    dbo.fangle_News.[URL] = @url
    and dbo.fangle_News.[Status] = 2
    and dbo.fangle_News.Version = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...