2014-07-27 2 views
0

У меня есть форма, которая вставляет дату ..даты и времени работает локально, а не на сервере

Работа на местном уровне, когда я отправить форму он работает ужасающе и сохраняет дату на сервере.

Но когда я пытаюсь сделать это с сервера, я получаю сообщение об ошибке:

String was not recognized as a valid DateTime.System.Collections.ListDictionaryInternal

Код:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Globalization; 

public partial class test : System.Web.UI.Page 
{  
    protected void dog_add_submit_Click(object sender, EventArgs e) 
    { 
     /*Create and Populate Dog*/ 

     Dog d = new Dog(); 
     try 
     { 
      d.DogName = dog_add_name.Text; 
      d.ImageUrl = SaveImages(); 
      d.Colour = dog_add_colour.Text; 
      d.PlaceFrom = dog_add_placeFrom.Text; 
      d.Breed = dog_add_breed.Text; 

      d.ArrivalDate = DateTime.Parse(txtDate.Text); 

      //if fields were populated properly in c# proceed to insert into database 
      try 
      { 
       int numEffected = d.doginsert(); 
       // Response.Write("num of effected rows are " + numEffected.ToString()); 

       Response.Redirect("MedicalHistoryAdd.aspx?dogid=" + d.SqldogID); 
      } 
      catch (Exception ex) 
      { 
       Response.Write("There was an error when trying to insert the dog into  the database" + ex.Message); 
      } 
     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.Message + ex.Data); 
     } 

    } 
} 
+0

возможный дубликат [ «Строка не была признана в качестве действительного DateTime» только сервер, но работает нормально в моей локальной системе] (HTTP: //stackoverflow.com/questions/16495751/string-was-not-recognized-as-a-valid-datetime-in-server-only-but-it-is-working) – Suji

ответ

2

.NET будет установить локаль все, что по умолчанию на компьютере он работает , Это означает, что он также будет анализировать DateTime и ToString() DateTime в этом языке. Итак, я полагаю, что ваши предпочтения на местном языке/часовом поясе отличаются от сервера?

Вы можете установить их в web.config ожидать и вывода что-то конкретное:

<system.web> 
    <globalization culture="da-DK" uiCulture="da-DK" /> 
</system.web> 

Mine датская, может быть, вы хотите ан-ГБ или EN-US?

Второй вариант - стрелять рыбой в бочке с инвариантным форматом.

DateTime.Parse(txtDate.Text, DateTimeFormatInfo.InvariantInfo); 

Надеюсь, что это поможет!

+0

Работал отлично для меня. Благодаря! – Ksuvec

0

попробовать этот

DateTime curr = Convert.ToDateTime(txtDate.Text); 
d.ArrivalDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(curr, "India Standard Time"); 

или

d.ArrivalDate = Convert.ToDateTime(txtDate.Text); 
Смежные вопросы