2017-08-11 57 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); 
相關問題