Wpf组合框Itemstringformat日期

时间:2018-01-05 19:28:33

标签: c# wpf wpfdatagrid

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"

它不起作用。我该如何解决?

1 个答案:

答案 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";