devxpress gridView控件读取sql读取时间为整数,转换为 小时 分 秒

 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;
}

先看运行结果:

img

示例表结构:

img

示例数据:

img

程序实现代码:

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可以指定显示的列,如图:

img

运行效果如图:

img

关键代码如下

var time = TimeSpan.FromSeconds(230);
var timeStr = time.ToString(@"hh\:mm\:ss");

如有帮助,请采纳,十分感谢!