Как сохранить дату, дату и время в базе данных SQLite в формах Xamarin? - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу вставить Date, DateTime (без секунд) и Time в мою базу данных SQLite.Я могу вставить данные, но информация неверна.Переменная, которая содержит данные, является правильной, но когда данные вставляются в базу данных, информация неверна.

У меня есть эта таблица:

[Table ("tblCaf")]открытый класс CAFTable{[PrimaryKey, MaxLength (100)]открытая строка CAFNo {get;задавать;}public int EmployeeID {get;задавать;}public DateTime CAFDate {get;задавать;}[MaxLength (100)]открытая строка CustomerID {get;задавать;}public DateTime StartTime {get;задавать;}public DateTime EndTime {get;задавать;}публичная строка Photo1 {get;задавать;}публичная строка Photo2 {get;задавать;}публичная строка Photo3 {get;задавать;}публичная строка MobilePhoto1 {get;задавать;}публичная строка MobilePhoto2 {get;задавать;}публичная строка MobilePhoto3 {get;задавать;}[MaxLength (1000)]публичная строка Remarks {get;задавать;}[MaxLength (1000)]открытая строка OtherConcern {get;задавать;}public DateTime LastSync {get;задавать;}public DateTime ServerUpdate {get;задавать;}public DateTime MobileUpdate {get;задавать;}}

Это мой код:

var caf = entCafNo.Text;
var retailerCode = entRetailerCode.Text;
var employeeNumber = entEmployeeNumber.Text;
var date = dpDate.Date; //I get the date inside the datepicker
var startTime = tpTime.Time; //I get the time inside the time picker
var endTime = DateTime.Now.TimeOfDay; //I get the current time
var photo1url = entPhoto1Url.Text;
var photo2url = entPhoto2Url.Text;
var photo3url = entPhoto3Url.Text;
var otherconcern = entOthers.Text;
var remarks = entRemarks.Text;
var current_datetime = DateTime.Now.ToString("yyyy-MM-dd hh:mm"); //I get the current datetime

string caf_sql = "INSERT INTO tblCaf(CAFNo, EmployeeID, CafDate, CustomerID, StartTime, EndTime, Photo1, Photo2, Photo3, Remarks, OtherConcern, LastSync, MobileUpdate) 
VALUES('" + caf + "','" + employeeNumber + "', '" + date + "', '" + retailerCode + "', '" + startTime + "', '" + endTime + "', '" + photo1url + "', '" + photo2url + "', '" + photo3url + "', '" + remarks + "', '" + otherconcern + "', '" + current_datetime + "', '" + current_datetime + "')";

await conn.ExecuteAsync(caf_sql);

Я могу получить правильную дату, время и дату и время.Проблема заключается в том, что когда я сохраняю это, дата стала 01/01/0001, время стало 00:00:00, а дата стало 01/01/0001 00:00:00, другими словами, данные не добавляются правильно.Что я могу улучшить в своем коде?

1 Ответ

0 голосов
/ 23 сентября 2018

вместо того, чтобы вручную создавать оператор вставки, вы, вероятно, получите лучшие результаты, используя функцию вставки

var item = new CAFTable {
  CAFDate = dpDate.Date,
  StartTime = tpTime.Date, // note Time is a TimeSpan, not a DateTime
  EndTime = DateTime.Now, // note TimeOFDay is a TimeSpan, not a DateTime
  LastSync = DateTime.Now,
  MobileUpdate = DateTime.Now
  ... set any other properties as needed
};

await conn.InsertAsync(item);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...