我只想将“TIME”保存到数据库中。
但是,我得到的是“时间”,接着是“日期”
以下是我将数据库添加到数据库文件后程序中的数据库截图:
如果您在“时间”列中看到日期后面的时间。我不想那样的地方(我只想要“时代”专栏中显示的时间)。
此外,我已经将数据库文件中“Times”的格式设置为“Medium Time”,这将给我“4:56 PM”。
以下是数据库中时间的屏幕截图:
数据库文件中的时间是正确的,因为它只显示了时间。但是,在我使用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 :(得分:0)
您可以使用DateTime.ToString(formatString)方法根据需要格式化日期时间。 然后你可以在数据网格中显示结果字符串或任何你想要的。
var dtTime =(DateTime) dataReader["Times"];
var strTime = datTime.ToString("hh:mm tt");
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以将时间存储为午夜的秒数,例如在您的情况下:
您将在数据库中归档的Times定义为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);
时间是您在文本框或网格等中显示的所需格式。