suganyaarya Ответов: 1

S. dob=txtdob.text не может неявно преобразовать тип string в system.datetime


Но почему я этого не сделал convert.to вариант даты

Что я уже пробовал:

But why I have not convert.to date option 

Leo Chapiro

Чувак, о чем ты говоришь?

1 Ответов

Рейтинг:
2

OriginalGriff

Прочтите сообщение об ошибке:

cannot implicitly convert type string to system.datetime

Это происходит потому, что C# строго типизирован: он не будет автоматически выполнять преобразования между типами данных (если только не существует определенного неявного метода преобразования, определенного как часть класса, как, например, от int до double).
Неявного преобразования строки в дату-время не существует, потому что существует так много различных способов записи даты в виде строки:
2018-01-05
18-01-05
05-01-18
01-05-18
Есть все допустимые способы представления сегодняшней даты в различных культурах: UTC long / Japan, UTC short, Europe, America.
И вы все равно не хотите его конвертировать - вы хотите разобрать входные данные и преобразовать их, если они действительны:
DateTime dt;
if (!DateTime.TryParse(myStringContainingADate, out dt))
   {
   // There is a problem, it's not a valid date and / or time
   ... report problem to user ...
   return;
   }
// dt contains a valid DatetIme as entered here
Это использует культуру по умолчанию для ПК, на котором выполняется код, что, вероятно, будет правильно, если пользователь печатает на этом компьютере. Если это не так, вам нужно использовать TryParseExact и соответствовать культуре, которую пользователь, скорее всего, будет использовать вместо этого.