Wpf 组合框 Itemstringformat 日期

Wpf combobox Itemstringformat date

在数据库中绑定的组合框项目:

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"

没用。我该如何解决?

reader.GetString("tedavi_tarih") returns 一个字符串。它不 return 一个 DateTime。当您尝试使用 DateTime 格式字符串将字符串转换为字符串时,字符串不会变成 DateTime

如果 "tedavi_tarih" 列确实是日期,这应该有效:

while (reader.Read())
{
    combobox_tarih.Items.Add(reader.GetDateTime("tedavi_tarih"));
}

如果 "format as Date" 你的意思是它是一个格式化为字符串的日期,你将不得不使用 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";