我有一个datagridview控件,其中有一列为“出生日期”,绑定到该控件上的数据表中有一列为日期时间型数据。注:“出生日期”是联合主键的成员之一。
我们知道sqlserver中只有datetime类型,默认的格式为yyyy-mm-dd hh:mm:ss.sss
那现在问题来了,我datagridview“出生日期”列中显示的数据全为:YYYY-MM-DD 0:00:00格式,我该怎么做才能使datagridview中显示格式为:YYYY-MM-DD?当然我也看了MSDN上的一些帮助,比较愚钝,还没悟出怎么使用。
这是adapter原来使用的select语句:
SELECT Name, Gender, Nation, Birthday, IDNumber, VISAType, VISANum, Retention
FROM PreCheckTable
WHERE (ISDELETE IS NULL)
后来我把它改成这样:
SELECT Name, Gender, Nation, CONVERT (char(10),Birthday,102) AS Birthday, IDNumber, VISAType, VISANum, Retention
FROM PreCheckTable
WHERE (ISDELETE IS NULL)
VS2005提示我:对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成。
我估计可能是select语句写的有问题,并没有把作为联合主键之一的Birthday字段读出来。大家帮忙看看。
我们知道sqlserver中只有datetime类型,默认的格式为yyyy-mm-dd hh:mm:ss.sss
那现在问题来了,我datagridview“出生日期”列中显示的数据全为:YYYY-MM-DD 0:00:00格式,我该怎么做才能使datagridview中显示格式为:YYYY-MM-DD?当然我也看了MSDN上的一些帮助,比较愚钝,还没悟出怎么使用。
这是adapter原来使用的select语句:
SELECT Name, Gender, Nation, Birthday, IDNumber, VISAType, VISANum, Retention
FROM PreCheckTable
WHERE (ISDELETE IS NULL)
后来我把它改成这样:
SELECT Name, Gender, Nation, CONVERT (char(10),Birthday,102) AS Birthday, IDNumber, VISAType, VISANum, Retention
FROM PreCheckTable
WHERE (ISDELETE IS NULL)
VS2005提示我:对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成。
我估计可能是select语句写的有问题,并没有把作为联合主键之一的Birthday字段读出来。大家帮忙看看。
解决方案 »
- 貌似关于多线程的一个问题
- 半透明窗体的制作
- treeview节点访问
- 如何高效制作样式表CSS
- 菜鳥問題:C#中怎樣彈出一個對話框???
- 谁看过head first C#这本书?
- 怎样在DataGrid行的编辑状态下读取数据库里的表并加载到菜单,并实现菜单选中项的判别?????????????
- 【求助】怎么把Silverlight的值传给wpf网页..? 不用cookie... 并一些Silverlight问题
- OFFIE/QQ/WPS/3721这些东西用什么语言写的?JAVA/.NET/VS6 ???
- 取一个日期变量的 前一天或者前两天的 日期,怎么处理?
- C#中怎样修改文件名,文件夹名
- 请问c# 的菜单按钮怎么实现(winform)
注意,MM为大写。
{
if (e.ColumnIndex == 1) // 假设生日是在第1列(从零开始)
{
e.Value = 你的格式化日期函数(e.Value.ToString());
}
}
CalendarColumn coldtCheckDate = new CalendarColumn();
coldtCheckDate.DataPropertyName = "dtCheckDate";
coldtCheckDate.HeaderText = "检查日期";
datagridview.Columns.Add(coldtCheckDate);
虽然得到了想要的结果,但是还是想要找到能够在源头上控制格式的方式。
即:在从数据库读入到dataset中的时候就规定了格式。
怎么做?
FROM PreCheckTable
WHERE (ISDELETE IS NULL)改为SELECT Name, Gender, Nation, CONVERT (char(10),Birthday,23) AS Birthday, IDNumber, VISAType, VISANum, Retention
FROM PreCheckTable
WHERE (ISDELETE IS NULL)
CONVERT (char(10),Birthday,23) 我也遇到过yyyy-mm-dd。呵呵。。
参见
http://blog.csdn.net/sycdirdircc/archive/2007/03/25/1540328.aspx