Привет, есть программа, над которой я работаю, и в разделе дневника у меня возникают некоторые проблемы.Преобразование и сравнение mysql и C# datetime
при регистрации записей Я использую следующий код, где appdate - дата назначения. dtpappdate - мой datetimepicker.
cmd.Parameters.AddWithValue("?appdate", dtpappdate.Value.ToShortDateString());
приведенный выше код работает нормально и когда я делаю записи. Он успешно сохраняет дату в базе данных mysql.
then Когда я читаю из базы данных, я хочу сравнить даты записей в базе данных и моей текущей даты на компьютере, чтобы они отображали только совпадающие даты для отображения списка дел.
следующий код для чтения и сравнения, но моя программа дает мне ошибку. говоря, что я не могу преобразовать данные.
DateTime dn = new DateTime();
dn = DateTime.Now;
string constring = "Server=localhost;Database=vetsoft; uid=root;pwd=geyikler88;";
string command = "SELECT * FROM vetsoft.clients ";
try
{
using (MySqlConnection myCon = new MySqlConnection(constring))
{
using (MySqlCommand cmd = new MySqlCommand(command, myCon))
{
myCon.Open();
MySqlDataReader myReader = cmd.ExecuteReader();
while (myReader.Read())
{
if(Convert.ToDateTime(myReader["appdate"].ToString()) == dn)
{
listBox1.Items.Add("İsim: " + myReader["name"].ToString() + " Telefon: " + myReader["phone"].ToString() + " P İsim: " + myReader["pname"].ToString() + " Yaş: " + myReader["age"].ToString() + " Randevu Saati: " + myReader["apptime"].ToString() + " Hastalık: " + myReader["sickness"].ToString() + " Ek Not: " + myReader["eknot"].ToString());
}
}
Как я могу правильно провести сравнение? любая помощь?
Какая ошибка в точности? На какой линии? Каковы ваши переменные? И почему вы сохраняете значения 'DateTime' со своими строковыми представлениями? Это плохой подход. Используйте свой 'dtpappdate.Value', когда вы вставляете свое значение, а не строковое представление. –
Почему вы используете строки вообще? Если это дата в базе данных, просто используйте 'DateTime' везде. Не называть 'ToShortDateString' на' dtappdate.Value'. Включите 'myReader [" appdate "]' to 'DateTime' вместо того, чтобы преобразовать его в строку и обратно. –
Дополнительная информация: Невозможно преобразовать значение даты и времени MySQL в System.DateTime, это ошибка, которую я получаю – Licentia