新人求助。。。想在datagridview上弄出想要的结果

qq_39692470 2017-08-18 10:43:55


string timehour1 = "";
string timehour2 = "";
string timehour3 = "";
string txt = comboBox1.SelectedItem.ToString();
if (txt == "上午")
{
timehour1 = "06:30:00";
timehour2 = "12:00:00";
timehour3 = "08:30:00";
}
string timedate1 = dateTimePicker1.Value.ToString("yyyy-MM-dd ");
string time1 = timedate1 + timehour1;
string time2 = timedate1 + timehour2;
string time3 = timedate1 + timehour3;

string sql= "select id,name, userID, min(time),clockIn from test where time > '" + time1 + "' and time < '" + time2 + "' group by userID";
DbHelper db = new DbHelper();
dataGridView1.DataSource = db.GetDataSet(sql).Tables[0];

如题,数据库里时间是varchar格式,点击查询,mintime显示了时间段内最早的时间。 现在想要的是,在点击查询后,在clockin里边mintime与time3的差以分钟形式显示(mintime-time3)。第一次发帖子,,刚接触,,大佬们多多包涵0.0
...全文
114 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
键盘敲出字 2017-08-18
  • 打赏
  • 举报
回复
按你的需求,按钮点击事件代码:

int row = dataGridView1.Rows.Count;//得到总行数     
            for (int i = 0; i < row; i++)//循环表  
            {
                DateTime dateTime = Convert.ToDateTime(dataGridView1.Rows[i].Cells["mintime"].Value);//取得mintime时间
                dataGridView1.Rows[i].Cells["clockin"].Value = (dateTime - time3).TotalMinutes.ToString("f0");//计算时间差和赋值
            }
还有定义一个全局变量为
private DateTime time3;
将你的代码修改下
string time3 = timedate1 + timehour3;
改成
time3 = Convert.ToDateTime(timedate1 + timehour3);
xdashewan 2017-08-18
  • 打赏
  • 举报
回复
我个人建议你把数据库里时间改为datetime的,尤其还要进行运算。如果你实在不愿意改,只能sql里先强转日期再计算

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧