Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用空DataGridView列跟踪DateTime选择?

使用空DataGridView列跟踪DateTime选择?
EN

Stack Overflow用户
提问于 2015-07-30 23:06:48
回答 1查看 427关注 0票数 0

首先,我的问题是一些实验性的问题,而不是实际的问题。我的数据库表有一个datetime列,它允许空值。在该列中只有1条记录具有空值。现在,在使用数据适配器(基本上)将数据填充到DataTable并在DataGridView上显示数据之后。我可以看到具有null值的日期时间的单元格是空的( DataTable中包含的底层数据是一个DBNull)。我有一个绑定到datetime字段的DateTimePicker (它可以有DBNull值)。现在,如果我将DataGridView上的选择导航到在我提到的datetime列中具有空值的行,则DateTimePicker (以及其他一些文本字段)不会更新该值(看起来它停留在前面的选择中)。我还尝试创建一个Binding,它将DBNull格式化为DateTime.MinValue,但是没有任何改变。以下是代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var dt = new DataTable();
myAdapter.Fill(dt);
dataGridView.DataSource = dt;
//bind controls
var binding = new Binding("Value", dataGridView.DataSource, "birthdate");
//here is what I tried to convert DBNull.Value to DateTime.MinValue
binding.Format += (s,e) => {
   //debug shows that the execution can jump in here
   if(e.Value == DBNull.Value){
       e.Value = DateTime.MinValue;
   }
};
myDatePicker.DataBindings.Add(binding);

对于某些列,数据库表非常简单。我认为问题可能在于DateTimePicker如何处理数据。如果没有绑定数据,控件将显示与DataGridView上当前选择对应的信息OK。这是我在使用绑定时最讨厌的东西。它非常方便,但有时只是不可能理解和调试。如果使用事件处理程序( SelectionChanged事件)跟踪所选内容并手动更新控件,那么这个问题就不会那么费时。

我希望有人经历过这个问题,并能给我一些建议。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-07-31 01:04:21

实际上,我所做的应该是有效的,但是对于DateTimePicker的格式化值来说,这里有点错误,值应该在MinDateMaxDate的范围内。它没有抛出任何异常,但是如果具有null datetime列的行是第一行,那么在绑定之后就会抛出异常,并让我知道所有错误。现在代码可以如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
binding.Format += (s,e) => {
  //debug shows that the execution can jump in here
  if(e.Value == DBNull.Value){
     e.Value = myDatePicker.MinDate;
  }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31740066

复制
相关文章
DataGridView列自适应宽度
来源:http://www.cnblogs.com/wolf-sun/p/3480104.html
跟着阿笨一起玩NET
2018/09/20
1.8K0
DataGridView列自适应宽度
gridview属性_datagridview设置列宽
using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Windows.Forms;
全栈程序员站长
2022/11/09
1.7K0
DataGridView 密码列(显示为*号)的设置
曾经为在DataGridView中设置密码列(显示为*号)而发愁,如何把Windows 窗体 DataGridView 的某一列的数据显示为“*”。
Java架构师必看
2021/03/22
2.3K0
DataGridView使用小结
1).右键点击行时选中行,并弹出操作菜单 1). 添加一个快捷菜单contextMenuStrip1; 2). 给dataGridView1的CellMouseDown事件添加处理程序: private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)         {             if (e.Button == MouseButtons.Right)             {
跟着阿笨一起玩NET
2018/09/18
2.3K0
用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
全栈程序员站长
2022/07/09
1.7K0
DataGridView控件使用大全
DataGridView控件使用大全:http://www.haogongju.net/art/847949
跟着阿笨一起玩NET
2018/09/18
2K0
DataGridView控件使用大全
在DataGridView控件中实现冻结列分界线
我们在使用Office Excel的时候,有很多时候需要冻结行或者列。这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线。如下图: (图1) WinForm下的DataGridVie
葡萄城控件
2018/01/10
2.4K0
在DataGridView控件中实现冻结列分界线
sublime 列选择 原
2016年11月17日 09:27:24 zzh_my 阅读数:20295 标签: sublime text 更多
拓荒者
2019/03/08
2.6K0
DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态
本文转载:http://www.cnblogs.com/Johnny_Z/archive/2012/02/12/2348235.html
跟着阿笨一起玩NET
2018/09/19
2.8K0
python datetime简单使用
#当前时间 print datetime.datetime.now() 2018-06-13 16:22:42.414143
py3study
2020/01/14
4700
MySQL 中 datetime 和 timestamp 的区别与选择
MySQL 中常用的两种时间储存类型分别是datetime和 timestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择。
用户6182664
2019/11/20
20.4K0
第03期:列非空与自增
MySQL 里字段的属性很多,对性能来说,影响也是可大可小,所以针对其属性这一块有必要进行一次探究。
爱可生开源社区
2020/05/04
6220
Python中Datetime的使用
每次使用python处理datetime数据的时候,我总需要在书上查找或者网上搜索,使用后就很快忘记了,所以在这里整理出来一些常用方法。
AIFEx
2023/09/28
2410
Python中Datetime的使用
mysql connector 如何使用_MySQL Connector/Net 的简略使用
string connStr = string.Format(“server={0};user id={1}; password={2}; database=mysql; pooling=false”, edtSrv.Text, edtUser.Text, edtPwd.Text); try { conn = new MySqlConnection(connStr); conn.Open(); // 获得数据库列表 List cmd = new List(); cmd.Add(“SHOW DATABASES”); List list = getDataList(cmd); // 清空下拉框 cBoxDBs.Items.Clear(); // 增加下拉框列表 foreach (string str in list) cBoxDBs.Items.Add(str); } catch(MySqlException ex) { MessageBox.Show(“没有找到数据库: ” + ex.Message); }
全栈程序员站长
2022/09/14
2.6K0
mysql connector 如何使用_MySQL Connector/Net 的简略使用
C# 可视化程序设计机试知识点汇总,DBhelper类代码
打开窗体 HotelType ht = new HotelType(); ht.Show();//非模式窗体 ht.ShowDialog();//模式窗体 在父窗体中打开子窗体 HotelType ht = new HotelType(); ht.MdiParent = this; ht.Show();//非模式窗体 ht.ShowDialog();//模式窗体 退出系统 Application.Exit(); 清空文本框 两种方式 this.TextBox.clear(); t
SingYi
2022/07/14
7.8K0
C# 可视化程序设计机试知识点汇总,DBhelper类代码
关于DataGridView_DataError事件的问题
本文转载:http://blog.csdn.net/szstephenzhou/article/details/7834725
跟着阿笨一起玩NET
2018/09/18
2K0
C# excel文件导入导出
在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获!
zls365
2020/08/19
3.7K0
C# excel文件导入导出
【周末漫谈】空巢青年数据,“空巢”是选择还是无奈?
城市的繁华象征着机遇和希望,总是让人心向往之。越来越多的人选择去大城市打拼奋斗,寻找未来。而远离家乡,身处都市的高楼广厦,面对夜晚的万家灯火,人总是容易心生孤独,大概所谓城市,就是几百万人一起孤独的地
钱塘数据
2018/03/05
9580
【周末漫谈】空巢青年数据,“空巢”是选择还是无奈?
【C#】让DataGridView输入中实时更新数据源中的计算列
本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况。
AhDung
2018/09/13
5.3K0
【C#】让DataGridView输入中实时更新数据源中的计算列
点击加载更多

相似问题

创建可为空的Datagridview DateTime列

23

DateTime列中包含空值的DataGridView排序

519

在DataGridView中隐藏空列

10

如何计算"if“dataGridView列不为空

112

选择DataGridView的隐藏列

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文