datagridview问题。求帮助

qq_39692470 2017-08-23 09:35:40


刚入手,想做一个考勤统计,现在点击查询,根据不同条件可以将不同的数据显示在datagridview里,现在想点击导出时,可以把每次显示的数据存到数据库test_1表中做成一个新表。
     private void kaoqin_Load(object sender, EventArgs e)                   
{
comboBox1.Items.Add("早上");
comboBox1.Items.Add("中午");
comboBox1.Items.Add("下午");
comboBox1.Items.Add("晚上");
comboBox1.Items.Add("半夜");
}

private DateTime time3;

private void button1_Click(object sender, EventArgs e)
{
try
{
#region 根据条件查询
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";
}
else if (txt == "中午")
{
timehour1 = "13:30:00";
timehour2 = "15:59:59";
timehour3 = "13:30:00";
}
else if (txt == "下午")
{
timehour1 = "16:00:00";
timehour2 = "20:00:00";
timehour3 = "18:00:00";
}
else if (txt == "晚上")
{
timehour1 = "20:00:00";
timehour2 = "23:59:59";
timehour3 = "21:00:00";
}
else if (txt == "半夜")
{
timehour1 = "00:00:00";
timehour2 = "05:59:59";

}

string timedate1 = dateTimePicker1.Value.ToString("yyyy-MM-dd ");
string time1 = timedate1 + timehour1;
string time2 = timedate1 + timehour2;
time3 = Convert.ToDateTime(timedate1 + timehour3);

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

#region 得到迟到早退列
int row = dataGridView1.Rows.Count;//得到总行数

for (int i = 0; i < row; i++)//循环表
{
DateTime dateTime = Convert.ToDateTime(dataGridView1.Rows[i].Cells["mintime"].Value);//取得mintime时间

if (txt == "早上" )
{
if((dateTime - time3).TotalMinutes < 0)
{
dataGridView1.Rows[i].Cells["beLate"].Value = "";
}
else
{
dataGridView1.Rows[i].Cells["beLate"].Value = (dateTime - time3).TotalMinutes.ToString("f0");
}
}
else if (txt == "中午")
{
if((dateTime - time3).TotalMinutes >0&& (dateTime - time3).TotalMinutes < 5)
{
dataGridView1.Rows[i].Cells["beLate"].Value = "";
}
else
{
dataGridView1.Rows[i].Cells["beLate"].Value = (dateTime - time3).TotalMinutes.ToString("f0");
}
}
else if (txt == "下午 ")
{
if ((dateTime - time3).TotalMinutes < 0)
{
dataGridView1.Rows[i].Cells["beLate"].Value = (System.Math.Abs((dateTime - time3).TotalMinutes)).ToString();
}
else if((dateTime - time3).TotalMinutes>65)
{
dataGridView1.Rows[i].Cells["beLate"].Value = (dateTime - time3).TotalMinutes.ToString("f0");
}
}
else if (txt == "晚上")
{
if((dateTime - time3).TotalMinutes >0&& (dateTime - time3).TotalMinutes < 60)
{
dataGridView1.Rows[i].Cells["jiaban"].Value = "120";
}
else if((dateTime - time3).TotalMinutes > 60)
{
dataGridView1.Rows[i].Cells["jiaban"].Value = "180";
}
}
else if (txt == "半夜")
{
dataGridView1.Rows[i].Cells["jiaban"].Value = "180";
}
}
#endregion

dataGridView1.AllowUserToAddRows = false;
}

catch
{
MessageBox.Show("时间错误");
}
}



private void buttonExport_Click(object sender, EventArgs e)
{



}



#region
public DataSet GetDataSet(string sql)
{
using (conn = new MySqlConnection(connString))
{
conn.Open();
}
MySqlDataAdapter da = new MySqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
#endregion


...全文
151 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39692470 2017-08-23
  • 打赏
  • 举报
回复
好吧,那现在想问下button1click 查询的数据显示在datagridview里了, 在buttonexportclick()里怎么写能得到它当前显示的数据0.0---
易2017 2017-08-23
  • 打赏
  • 举报
回复
首先,关于数据查询你已经实现了,datagridview中提供直接修改数据的方法,具体做法为通过datatable的importRow方法将更改后的数据复制到新表,再利用dataAdapter对象的Updata方法更新数据到数据库
exception92 2017-08-23
  • 打赏
  • 举报
回复
刚入手,想做一个考勤统计 -》 你的代码里已经给出了 DbHelper类,例如:
 string sql = "select id,name, userID, min(time) from test where time >   '" + time1 + "' and time <  '" + time2 + "'  group by userID";
                DbHelper db = new DbHelper();
                dataGridView1.DataSource = db.GetDataSet(sql).Tables[0];
如果不是你写的代码,看看DbHelper 类中应该有Executexxx之类的方法供调用,看懂什么用法你的需求就解决了。
exception92 2017-08-23
  • 打赏
  • 举报
回复
现在想点击导出时,可以把每次显示的数据存到数据库test_1表中做成一个新表。 -》那就去了解ado.net 如何向数据库表添加数据,通过执行sql语句命令向表插入数据,这是个基础。
qq_39692470 2017-08-23
  • 打赏
  • 举报
回复

110,502

社区成员

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

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

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