【发布时间】:2017-08-11 18:32:42
【问题描述】:
我试图从我的一个数据库表中选择 DATE,我使用日期作为主键,但是当我检索 DATE 时,还有时间是 0:00:00。我只需要 DATE 将其插入组合框中,然后再次将其作为 PK 写入另一个表的数据库中。
public void race_combo()
{
MySqlConnection con = new MySqlConnection(connection);
MySqlCommand cmd = new MySqlCommand("SELECT * FROM race", con);
MySqlDataReader msdr;
try
{
con.Open();
msdr = cmd.ExecuteReader();
while (msdr.Read())
{
string team_id = msdr.GetString("id_race");
MessageBox.Show(team_id);
comboBox4.Items.Add(team_id);
comboBox6.Items.Add(team_id);
comboBox9.Items.Add(team_id);
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
数据库表: http://prntscr.com/g7cadr
这是我得到的输出,我相信它与 GetString 有关,但我不确定它是如何不同的。
【问题讨论】:
-
1) c# 中没有原生类型只有
Date,只有DateTime。 2) 你为什么使用GetString阅读你的date,你是否将日期作为字符串存储在数据库中?如果它是一个日期,那么你应该把它作为一个日期读回来(即日期时间)。 -
这是显示层问题。将组合框配置为仅显示日期部分或添加字符串值,将正确的格式传递给
ToString。 -
我不确定我还应该如何存储它,DateTime?我仅将其存储为 DATE
-
@renekton - 正确。以原始格式存储您的类型。 int = int、date = date 等。不要将数据库中的所有内容都转换为字符串。
-
非常感谢,我对 C# 有点陌生,对一切都不熟悉,所以我会尝试我找到的任何东西。