ds = SqlHelper.ExecuteDataset(connstr, CommandType.Text, sql);
gridControl12.DataSource = ds.Tables[0].DefaultView;
this.gridView12.BestFitColumns();
[img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/085793301356117.png "#left")
230秒 转换为 00小时03分08秒 然后显示到 gridView12 中,怎样实现呢?
我是初学者请提供详细的代码和方法
用下面这个函数
private string sec_to_hms(long duration)
{
TimeSpan ts = new TimeSpan(0, 0, Convert.ToInt32(duration));
string str = "";
if (ts.Hours > 0)
{
str = String.Format("{0:00}", ts.Hours) + ":" + String.Format("{0:00}", ts.Minutes) + ":" + String.Format("{0:00}", ts.Seconds);
}
if (ts.Hours == 0 && ts.Minutes > 0)
{
str = "00:" + String.Format("{0:00}", ts.Minutes) + ":" + String.Format("{0:00}", ts.Seconds);
}
if (ts.Hours == 0 && ts.Minutes == 0)
{
str = "00:00:" + String.Format("{0:00}", ts.Seconds);
}
return str;
}
先看运行结果:
示例表结构:
示例数据:
程序实现代码:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace WindowsFormsApp1.Forms.Demo3
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
const string ConnectionString = "Server=(localdb)\\mssqllocaldb;Integrated Security=true;Database=Demo";
private void Form3_Load(object sender, EventArgs e)
{
var connection = new SqlConnection(ConnectionString);
var adapter = new SqlDataAdapter("SELECT * FROM Product", connection);
var ds = new DataSet();
adapter.Fill(ds);
var table = ds.Tables[0];
table.Columns.Add("SecAsString");
for (var i = 0; i < table.Rows.Count; i++)
{
var time = TimeSpan.FromSeconds(Convert.ToInt32(table.Rows[i]["Sec"]));
var str = time.ToString(@"hh\:mm\:ss");
table.Rows[i]["SecAsString"] = str;
}
dataGridView1.DataSource = table.DefaultView;
}
}
}
或者,DataGridView可以指定显示的列,如图:
运行效果如图:
关键代码如下
var time = TimeSpan.FromSeconds(230);
var timeStr = time.ToString(@"hh\:mm\:ss");
如有帮助,请采纳,十分感谢!