2017-08-11 59 views
1

我试图从我的一个数据库表中选择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的但林不知道如何diffrently做到这一点。

http://prntscr.com/g7cayj

+1

1)在C#中没有原生类型只有'Date',只有'DateTime'。 2)为什么你使用'GetString'来读你的'date',你是否将Date作为一个字符串存储在数据库中?如果它是一个日期,那么你应该把它作为一个日期(即DateTime)读回来。 – Igor

+0

这是一个显示层问题。配置组合框只显示日期部分或添加字符串值,将正确的格式传递给'ToString'。 –

+0

林不知道我应该如何存储它,DateTime?我将它存储为仅DATE – renekton

回答

0

使用DATE_FORMAT功能在查询

SELECT DATE_FORMAT(id_race , "%Y-%m-%d") AS id_race FROM race 

代码:

public void race_combo() 
{ 
    MySqlConnection con = new MySqlConnection(connection); 
    MySqlCommand cmd = new MySqlCommand("SELECT DATE_FORMAT(id_race , "%Y-%m-%d") AS id_race 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); 
    } 
} 
0

最简单的方法是使用DATE()将其转换成MySQL查询:

SELECT columnname, DATE(datecolumn) FROM ..... 
2

首先使用GetDateDime()读取的值作为DateTime,然后将其转换为字符串以任何通过使用ToString选择格式:

DateTime team_id = msdr.GetDateTime("id_race"); 
String team_id_string = team_id.ToString("yyyy-MM-dd"); 
MessageBox.Show(team_id_string); 
comboBox4.Items.Add(team_id_string); 
comboBox6.Items.Add(team_id_string); 
comboBox9.Items.Add(team_id_string); 
相关问题