0
OleDbDataAdapter Buscar = new OleDbDataAdapter("SELECT ...", conexao);
DataTable dt = new DataTable();
Buscar.Fill(dt);
OleDbDataAdapter sda = new OleDbDataAdapter();
BindingSource bSource = new BindingSource();

bSource.DataSource = dt;
dataGridView1.DataSource = bSource;
sda.Update(dt);

private void dataGridView1_DefaultCellStyleChanged(object sender, EventArgs e)
{
   this.dataGridView1.Columns[4].DefaultCellStyle.Format = "HH:mm";
}

信息来自datagridview 数据库转换想要它HH:mm

4

2 回答 2

0

这是一个非常基本的示例,但它的工作原理与您希望的一样:

DateTime dt = DateTime.Now;
dataGridView1.Columns[0].DataGridView.Rows.Add(dt);
dataGridView1.Columns[0].DefaultCellStyle.Format = "HH:mm";

当我运行该应用程序时,它会返回“14:20”或“HH:mm”,正如您所期望的那样。

编辑:

根据下面的评论,OP 已经声明他错误地陈述了他的实际需求,因此,我正在使用将重新格式化日期的代码更新此答案(但为了彻底起见,还要保留原始代码)。

for (int i = 0; i < 5; i++)
{
    DateTime dt = DateTime.Now;
    dataGridView1.Columns[0].DataGridView.Rows.Add(dt);
    dataGridView1.Columns[0].DefaultCellStyle.Format = "T";

    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
       column.DefaultCellStyle.Format = "HH:mm";
    }
}

OP,请注意您的循环可能与我的不同,因此请记住这一点。为了让你能准确地看到我用来审查这个问题的方法,我也会发布所有代码:

namespace WindowsFormsApplication1
{
   using System;
   using System.Windows.Forms;

   public partial class Form1 : Form
   {
      public Form1()
      {
         InitializeComponent();
      }

      private void button1_Click(object sender, EventArgs e)
      {
         for (int i = 0; i < 5; i++)
         {
            DateTime dt = DateTime.Now;
            dataGridView1.Columns[0].DataGridView.Rows.Add(dt);
            dataGridView1.Columns[0].DefaultCellStyle.Format = "T";

            foreach (DataGridViewColumn column in dataGridView1.Columns)
            {
                column.DefaultCellStyle.Format = "HH:mm";
            }
         }
      }
   }
}
于 2013-11-06T22:22:46.650 回答
0

您是否尝试将格式用作“T”?

建议检查此链接http://msdn.microsoft.com/en-us/library/az4se3k1.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-17

最好的,

于 2013-11-06T22:14:20.967 回答