2013-09-21 34 views
1

我想只保存到數據庫的「時間」。節省時間到數據庫也跟着日期

但是,我所得到的是「時間」,其次是「DATE」

這裏是我的數據庫程序中的截圖後,我把它添加到數據庫文件:

enter image description here

如果您在「時間」列中看到日期後的時間。我不想那麼做(我只想要顯示在「時代」專欄中的時間)。

此外,我已經在數據庫文件中設置「Times」的格式爲「Medium Time」,這會給我「4:56 PM」。

這裏是在數據庫中的時間截圖:

enter image description here

數據庫文件的時間是正確的,因爲它僅顯示時間。但是,在我使用datagridview顯示數據庫的程序中,它顯示了日期之後的時間。

我如何改變它,讓我只能看到時間?

下面是代碼:

private void AddDatabase(object sender, EventArgs e) 
    { 
     using (OleDbConnection conn = new OleDbConnection(connectionString)) 
     { 
      string query = "INSERT INTO [Record] ([Times]) VALUES (@Times)"; 

      conn.Open(); 

      using (OleDbCommand cmd = new OleDbCommand(query, conn)) 
      { 
        _cmd.Parameters.Add("@Times", System.Data.OleDb.OleDbType.DBTimeStamp); 
        _cmd.Parameters["@Times"].Value = DateTime.Now.ToShortTimeString(); 

        int _numberOfRows = _cmd.ExecuteNonQuery(); 
       } 

       if (_choice.comboBox1.Text == "English") 
       { 
        System.Media.SoundPlayer _sound = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Exclamation.wav"); 
        _sound.Play(); 

        DialogResult _dialogResult = MessageBox.Show("Added Successfully!", "Success", MessageBoxButtons.OK); 

        if (_dialogResult == DialogResult.OK) 
        { 
         ViewDatabase(sender, e); 

         ClearTextBoxes(sender, e); 
        } 
       } 
      } 

      conn.Close(); 
     } 
    } 

基本上,我如何使用「格式」中的數據庫文件到代碼?

回答

0

您可以根據需要使用DateTime.ToString(formatString)方法格式化日期時間。 然後你可以顯示數據網格或任何你想要的結果字符串。

var dtTime =(DateTime) dataReader["Times"]; 
var strTime = datTime.ToString("hh:mm tt"); 
+0

顯示假設你是從數據庫中使用的DataReader – VahiD

+0

讀取行我是否需要在'[「Times」]後面加上'='後面的值?先生?而且,我應該怎麼處理'datTime'?不應該是這樣的:'var dtTime =(DateTime)dataReader [「Times」]; var strTime = dtTime.ToString(「hh:mm tt」);'而不是你寫的。 – Kaoru

+0

我寫的代碼只是爲了顯示存儲時間,只是格式化顯示。我以爲你有正確的格式顯示問題 – VahiD

0
2008+擁有 TIME數據類型

SQL SERVER,你可以用它來存儲時間,你可以看看這個article在.NET應用程序中使用它,只是一個提示,你可以用時間跨度的數據鍵入淨

+2

謝謝。但我現在正在使用ACCESS,而不是SQL。 – Kaoru

+0

所以最好的解決方案是將時間存儲爲從午夜開始的秒數(或毫秒)(例如3735表示01:02:15),然後使用.Net – VahiD

+0

中的廣告時間段數據類型,可以給我一個例子,瓦希德?謝謝 – Kaoru

0

您可以將時間存儲爲從午夜秒數,例如你的情況:

你定義時報數據庫INT申請,並

_cmd.Parameters.Add("@Times", System.Data.OleDb.OleDbType.Integer); 
_cmd.Parameters["@Times"].Value = (int)DateTime.Now.TimeOfDay.TotalSeconds; 

,並從數據庫中讀取後,你可以的秒數轉換爲時間

int soconds = reader["Times"]; 
string time = string.Format("{0:00}:{1:00}:{2:00}",seconds/3600,seconds/60,seconds%60); 

時間是你想要的格式文本中或網格等

+1

沒有DateTime.TimeOfDay先生。 – Kaoru

+0

對不起DateTime.Now.TimeOfDay – VahiD