怎么实现DataGridView的日期查询

Coder_JJ 2019-03-10 12:36:00


datagridview中是年月日分秒,我想在datetimepicker中实现对年月日的查询,如何操作
...全文
1932 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Excellent_2333 2019-03-16
  • 打赏
  • 举报
回复
DateTimePicker控件获取年月日以及时分秒:
1、在窗体程序中已经添加好一个DateTimePicker控件以及一个预览信息的控件
2双击DateTimePicke 编写
//控制日期或时间的显示格式 12小时制
this.dateTimePicker.CustomFormat = "yyyy-MM-dd hh-mm-ss";
或者//控制日期或时间的显示格式 24小时制
this.dateTimePicker.CustomFormat = "yyyy-MM-dd HH-mm-ss";
//使用自定义格式
this.dateTimePicker.Format = DateTimePickerFormat.Custom;
//时间控件的启用
this.dateTimePicker.ShowUpDown = true;
3、注意名称一致
4、双击button,设置显示时间
messagebox.show(dateTimePicker.value.toLongDatestring()+dateTimePicker.value.toLongTimestring())
5、执行结果
这样c#中的datetimepicker能完整显示年月日时分秒:
① CustomFormat属性设置为: yyyy-MM-dd HH:mm:ss
② 记住还要修改一个属性值,DateFormat属性 可选项改为Custom ,默认是Long
Coder_JJ 2019-03-15
  • 打赏
  • 举报
回复
解决了啦啦啦啦啦啦啦啦啦啦
Coder_JJ 2019-03-14
  • 打赏
  • 举报
回复
YaoLinman 2019-03-14
  • 打赏
  • 举报
回复
都在绕弯子,从数据中刷选不麻烦呐。。。。
建议直接从查询条件入手

 //比如要查14号和15号的数据
string time1 = "2019-03-14";
string time2 = "2019-03-15";

//起始时间为当日零点、终止时间为次日零点
time1 = "2019-03-14 00:00:00";
time2 = Convert.ToDateTime(time2).AddDays(1).ToString() + "00:00:00";

string sql = string.Format("select*from Table where time between {0} and {1}",time1,time2);
Coder_JJ 2019-03-14
  • 打赏
  • 举报
回复
U层
#region LoadList
private void LoadList()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
if (txtName.Text != "")
{
dic.Add("mname", txtName.Text);
}

if (txtStart.Text!="")
{
dic.Add("mlogintime", txtStart.Text);
}

if (txtEnd.Text != "")
{
dic.Add("mexittime", txtEnd.Text);
}

dgvList.AutoGenerateColumns = false;
dgvList.DataSource = workLogFacade.GetList(dic);
}
#endregion

#region 模糊查询(内容改变事件)
private void txtName_TextChanged(object sender, EventArgs e)
{
LoadList();
}
private void txtStart_TextChanged(object sender, EventArgs e)
{
LoadList();
}

private void txtEnd_TextChanged(object sender, EventArgs e)
{
LoadList();
}
#endregion

D层
public List<WorkLogInfo> GetList(Dictionary<string,string>dic)
{
//构造要查询的sql语句
string sql = "select * from WorkLog where 1=1";

List<SqlParameter> listP = new List<SqlParameter>();

//拼接条件
if (dic.Count > 0)
{
foreach (var pair in dic)
{
sql += " and " + pair.Key + " like @" + pair.Key;

listP.Add(new SqlParameter("@" + pair.Key, "%" + pair.Value + "%"));
}
}

//使用helper进行查询,得到结果
DataTable dt = SqlHelper.GetDataTable(sql,listP.ToArray());



//将dt中的数据转存到list中
List<WorkLogInfo>list=new List<WorkLogInfo>();

foreach (DataRow row in dt.Rows )
{
WorkLogInfo wi = new WorkLogInfo();

wi.MId = Convert.ToInt32(row["mid"]);
wi.MName = row["mname"].ToString();
wi.MLoginTime = Convert.ToDateTime(row["mlogintime"]);
wi.MType = Convert.ToInt32(row["mtype"]);
wi.MComputer = row["mcomputer"].ToString();

if (row["mexittime"] == DBNull.Value)
{
wi.MExitTime = null;
}
else
{
wi.MExitTime = Convert.ToDateTime(row["mexittime"]);
}

list.Add(wi);//数据显示
}

return list;
}
Coder_JJ 2019-03-13
  • 打赏
  • 举报
回复
sql查询是在D层,窗体是在U层,这怎么实现呀
weixin_44735541 2019-03-13
  • 打赏
  • 举报
回复
引用 3 楼 智者知已应修善业 的回复:
数据表还是控件?
数据表用筛选语句
控件用循环行或列
本人重金悬赏开发一个软件,高手来接单13822283579微信同步,新手勿扰!
weixin_44735541 2019-03-13
  • 打赏
  • 举报
回复
引用 1 楼 小眼聚光~ 的回复:
获取datagridview的source,数据源。
然后转换成集合再在结婚中查询数据
再把查询出来的数据重新绑定到gridview上去
本人重金悬赏开发一个软件,高手来接单13822283579微信同步,新手勿扰!
  • 打赏
  • 举报
回复
啧啧,告诉你个方法,你的DataGridView 的数据源 即:datasource 转为 datatable 然后用 da'ta'table的 select方法,直接写个sql 查出来数据,然后把他绑定上去就可以了。

常规写法是 重新去查一次数据库,把数据再绑一次呗。
Hobo丶 2019-03-13
  • 打赏
  • 举报
回复
https://www.cnblogs.com/xiaochun126/p/5037203.html
可以参考一下。
秋的红果实 2019-03-12
  • 打赏
  • 举报
回复
利用DataGridView有关方法
Coder_JJ 2019-03-12
  • 打赏
  • 举报
回复
七层传的时候怎么传呢?
Tiny~ 2019-03-12
  • 打赏
  • 举报
回复
晕,还没写完点错了提交按钮…… 比如查询按钮是button1 private void Button1_Click(object sender, EventArgs e){ //可以先写你的日期判断语句,比如是否一并选择了开始日期 截止日期,日期格式,日期前后选择是否倒置 //这里就直接写sql语句查询就好了 //打开数据库 conConnection.Open(); //查询 string cmd = "select * from [登录表] where [登录日期] between '" + 开始日期.Text.Trim() + "' and '" + 截止日期.Text.Trim() + "'"; SqlCommand com = new SqlCommand(cmd, conConnection); SqlDataReader reader = com.ExecuteReader(); while (reader.Read()) { //…… } reader.Dispose(); reader.Close(); //重新绑定dgv SqlDataAdapter ada = new SqlDataAdapter(cmd, conConnection); ada.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; //关闭数据库 } 如果没有按钮,就判断选择的日期value是否变化,或者搞一个隐藏的button也一样 我也是菜鸟,一直这么做的,暂时没问题
Tiny~ 2019-03-12
  • 打赏
  • 举报
回复
这个不是很简单吗 绑定事件,比如有一个查询按钮,或者你判断那个日期选择值变化触发事件,查询就可以了 比如一个查询按钮 Button1,事件 Button1_Click(){ }
圣殿骑士18 2019-03-11
  • 打赏
  • 举报
回复
查询条件是:
日期 >= 开始日期 && 日期 < 结束日期的值 + 1天

==========
最新文章:解读经典《C#高级编程》 第四章之 泛型约束 https://mp.weixin.qq.com/s/ZHiaTpzBD-OdPs0Eo7iawQ
欢迎关注微信公众号 “产品技术知与行” ,解读技术经典书籍(C#,Java,Js),发表技术专题、提供源码下载,打造全面结构化知识库,欢迎对全栈/跨语言技术有兴趣的小伙伴关注。
  • 打赏
  • 举报
回复
要实现对点击列的数据筛选 就要获取选列的位置,.CurrentCell.ColumnIndex,然后写筛选语句即可。
小眼聚光~ 2019-03-10
  • 打赏
  • 举报
回复
获取datagridview的source,数据源。
然后转换成集合再在结婚中查询数据
再把查询出来的数据重新绑定到gridview上去
Coder_JJ 2019-03-10
  • 打赏
  • 举报
回复
c#点击控件筛选日期
  • 打赏
  • 举报
回复
​筛选数据表

DataView 筛选表 = DataTable数据表.DefaultView;
string 点选 = “查询“;
筛选表.RowFilter = "性味归经 Like '%" + 点选 + "%'";
  • 打赏
  • 举报
回复
数据表还是控件?
数据表用筛选语句
控件用循环行或列
加载更多回复(1)

110,538

社区成员

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

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

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