Ошибка: Строка не была распознана как допустимый DateTime. - PullRequest
0 голосов
/ 28 ноября 2011

Ошибка: строка не была распознана как действительный DateTime.ниже приведена трассировка стека -

"в System.DateTimeParse.Parse (String s, DateTimeFormatInfo dtfi, DateTimeStyles стилей) \ r \ n в System.Convert.ToDateTime (String value) \ r \ nв ConsoleApplication10.Program.b_ 1 (<> f _AnonymousType0 1 a) in C:\\Documents and Settings\\xxxxdev\\My Documents\\Visual Studio 2008\\Projects\\ConsoleApplication10\\ConsoleApplication10\\Program.cs:line 23\r\n at System.Linq.Enumerable.WhereSelectListIterator 2.MoveNext () \ r \ n в ConsoleApplication10.Program.Main (аргументы строки []) в C: \ Documents and Settings \hj81dev \ Мои документы \ Visual Studio 2008 \ Projects \ ConsoleApplication10 \ ConsoleApplication10 \ Program.cs: строка 28 \ r \ n в System.AppDomain._nExecuteAssembly (сборка сборки, аргументы String []) \ r \ n в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String [] args) \ r \ n в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () \ r \ n в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) \ r \ n в системе.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) \ r \ n в System.Threading.ThreadHelper.ThreadStart () "

это мой код. Вбаза данных sql server мое поле dateofbirth имеет тип varbinary

class Program
    {
        static void Main(string[] args)
        {
            var customerProfileGuid = new Guid("35D02589-C5FA-437D-B661-000215C68584");
            using (CustomerProfileEntities context = new CustomerProfileEntities())
            {
                var test = from x in context.CustomerProfile
                           where x.CustomerProfileId == customerProfileGuid
                           select new { x };

                var customerData = test.ToList();
                var customerResult = (from a in customerData
                                      select new Profile
                                      {
                                          DateOfBirth =Convert.ToDateTime(Encoding.UTF8.GetString(a.x.DateOfBirth)) //getting error here
                                      });

                foreach (var profile in customerResult)
                {
                    var profileData = profile;
                }
            }

        }
    }
    public class Profile
    {
        private DateTime dateOfBirthField;

        [System.Xml.Serialization.XmlElementAttribute(DataType = "date")]
        public DateTime DateOfBirth
        {
            get
            {
                return this.dateOfBirthField;
            }
            set
            {
                this.dateOfBirthField = value;
            }
        }
    }

Пожалуйста, сделайте все необходимое

1 Ответ

0 голосов
/ 28 ноября 2011

установить cultureinfo, чтобы быть уверенным, какой формат используется

var cultureInfo = new CultureInfo(yourCulture);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...