【发布时间】:2015-10-18 23:41:21
【问题描述】:
您好,我正在开发一个程序,但在日记部分我遇到了一些问题。
在注册条目时,我使用以下代码,其中 appdate 是约会日期。 dtpappdate 是我的日期时间选择器。
cmd.Parameters.AddWithValue("?appdate", dtpappdate.Value.ToShortDateString());
上面的代码工作正常,当我输入时。它成功地将日期存储到mysql数据库中。
然后当我从数据库中读取时,我想比较数据库中条目的日期和我在计算机上的当前日期,以便它只显示匹配的日期来显示我的待办事项列表。
以下是要读取和比较的代码,但我的程序给了我一个错误。告诉我我无法转换数据。
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。不要在dtappdate.Value上致电ToShortDateString。将myReader["appdate"]转换为DateTime,而不是将其转换为字符串并返回。 -
附加信息:无法将 MySQL 日期/时间值转换为 System.DateTime 这是我得到的错误
-
if 语句出现错误