Combobox项目绑定在数据库中:
using (MySqlConnection connect = new MySqlConnection(connectionString))
{
string sql = "SELECT DISTINCT tedavi_tarih FROM " + mw.db_name + ".tedavi Where hasta_id= '" + mw.hasta_id + "' ORDER BY tedavi_tarih DESC";
using (MySqlCommand cmd = new MySqlCommand(sql, connect))
{
connect.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
combobox_tarih.Items.Add(reader.GetString("tedavi_tarih"));
}
connect.Close();
}
}
tedavi_tarih格式为日期,但是当我将其添加到组合框时,它显示为" 5.01.2018 00:00:00"。我只想显示" 5.01.2018"。我在XAML中试过这个:
ItemStringFormat="dd/M/yyyy"
它不起作用。我该如何解决?
答案 0 :(得分:3)
reader.GetString("tedavi_tarih")
返回一个字符串。它没有返回DateTime
。当您尝试使用DateTime
格式字符串将字符串转换为字符串时,字符串不会成为DateTime
。
如果" tedavi_tarih"列确实是Date,这应该有效:
while (reader.Read())
{
combobox_tarih.Items.Add(reader.GetDateTime("tedavi_tarih"));
}
如果按"格式化为日期"你的意思是它是一个格式化为字符串的日期,你必须使用DateTime.TryParse()
。让我知道。
强制警告:以下代码是SQL注入漏洞。这是非常糟糕,非常危险的做法。您不应该连接SQL字符串。而是You should use SqlParameters。
string sql = "SELECT DISTINCT tedavi_tarih FROM " + mw.db_name + ".tedavi Where hasta_id= '"
+ mw.hasta_id + "' ORDER BY tedavi_tarih DESC";