2017-08-11 3 views
1

私のデータベーステーブルの1つからDATEを選択しようとしていますが、私は日付を主キーとして使用していますが、DATEを取得すると時刻も0:00:00です。私は、DATEをコンボボックスに挿入するだけで、PKで別のテーブルのdatabseに再度書き込む必要があります。時間のないデータベースからDATEを選択

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)のみ 'Date'を持つC#にはネイティブ型はありませんが、唯一の' DateTime'があります。 2)なぜ 'GetString'を使って' date'を読んでいるのですか?DBに文字列として日付を格納していますか?それが日付の場合は、それを日付(つまり、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); 
関連する問題