foreach (DataRow dr in ds.Tables[0].Rows)
{
dr["mdtm"] = Convert.ToDateTime(dr["mdtm"]).ToString("yyyy-MM-dd HH:mm:00");
}
原本这样处理,可是数据量一多就太慢了,有没有啥优化的办法求教各位大神,想要使用 ds.Tables[0].Columns["mdtm"].Expression = "Convert(expression, type)";的方法,可表达式那里老写不对,求教
c#datatable中的时间列想要整行把秒归零
答案:2 悬赏:70 手机版
解决时间 2021-03-16 02:12
- 提问者网友:嘚啵嘚啵
- 2021-03-15 15:09
最佳答案
- 五星知识达人网友:猎心人
- 2021-03-15 16:30
1、如果你只是想修改显示,应该将用于显示mdtm列的控件(datagridview)的列格式设置为"yyyy-MM-dd HH:mm:00",这样显示就是你想要的。
2、如果你是想更改值,那么应该在数据表绑定到控件之前更改列的值,这样就不会因为界面刷新导致循环慢。如果还慢应该使用Task.Startnew(()=>{...});异步更新每个单元格的值。
3、看你代码mdtm应该是个字符串,你可以在源头上生成这个列的值时就格式化成这种格式,比如数据库select语句中就直接用数据库函数将这列的值转换为想要的格式
2、如果你是想更改值,那么应该在数据表绑定到控件之前更改列的值,这样就不会因为界面刷新导致循环慢。如果还慢应该使用Task.Startnew(()=>{...});异步更新每个单元格的值。
3、看你代码mdtm应该是个字符串,你可以在源头上生成这个列的值时就格式化成这种格式,比如数据库select语句中就直接用数据库函数将这列的值转换为想要的格式
全部回答
- 1楼网友:大漠
- 2021-03-15 17:44
其实你这样等于三次进行装拆箱,你可以把他转换成字符串,然后进行字符串操作
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯