Как назначили, так и отображать дату значение на дату, используя объект sqlitedatareader в C# с использованием WPF
Я хочу прочитать значение datetime из базы данных Sqlite и назначить его элементу управления datepicker. Вот мой код, который я пытаюсь использовать:
try { sqlitecon.Open(); string Query = "Select * from Customer_New where Cust_Id='" + val + "' "; SQLiteCommand createCommand = new SQLiteCommand(Query, sqlitecon); // createCommand.ExecuteNonQuery(); SQLiteDataReader dr = createCommand.ExecuteReader(); while(dr.Read()){ if(!dr.IsDBNull(1)) date_open.DisplayDate = dr.GetDateTime(1); if(!dr.IsDBNull(2)) Date_Joining.DisplayDate = dr.GetDateTime(2); if(!dr.IsDBNull(3)) txt_Title.Text = dr.GetString(3); if(!dr.IsDBNull(4)) txt_cardnum.Text =dr.GetString(4); } sqlitecon.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
Приведенный выше код выполняется при событии загрузки формы .поэтому при загрузке формы он должен загрузить значение даты из таблицы БД в средство выбора даты .но форма открывается с окном сообщения, которое показывает исключение "указанное приведение недопустимо". Затем он не может загрузить какое-либо значение из БД, и если я удалю поля даты из назначения в цикле while, то остальные текстовые поля будут правильно назначены форме . Мой db foramt даты :MM/DD/YYYY и имеет тип datetime . При отладке поставьте точку останова в "date_open.DisplayDate = dr.GetDateTime(1);" он показывает системную дату и время .Мои таблицы БД имеют следующую последовательность: Cust_id | date_open | Date_Joining|..... пожалуйста, помогите
Что я уже пробовал:
нуль....................................................................
Pheonyx
если вы пройдете через свой код и перед выполнением любой из строк dr.GetDateTime просмотрите dr.GetDateTime(1) или dr.GetDateTime(2) в окне просмотра, какие значения вы получите?
ZurdoDev
Все, что вам нужно сделать, это отладить это, и вы быстро найдете, что не так. Вы пытаетесь загрузить в date что-то, что не находится в формате даты.
Это очень просто, но мы не можем запустить ваш код, поэтому только вы можете это сделать.