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";
在数据库中绑定的组合框项目:
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";