- 积分
- 40165
- 好友
- 记录
- 主题
- 帖子
- 听众
- 收听
|
[北京]-冥狼() 10:03:49
异常:该字符串未被识别为有效的 DateTime。
[北京]-冥狼() 10:03:53
怎么处理啊
[北京]-冥狼() 10:04:44
DataGridView填充的时候提示的
站长苏飞<sufei.1013@163.com> 10:04:37
不是就转成是的,
[北京]-冥狼() 10:05:17
这个是SQL查询后填充到DataGridView中的
站长苏飞<sufei.1013@163.com> 10:05:29
直接绑定的?
站长苏飞<sufei.1013@163.com> 10:05:38
数据库是日期类型?
[北京]-冥狼() 10:06:18
数据库里面没有这一列
[北京]-冥狼() 10:06:25
是计算后得到的列
[北京]-冥狼() 10:06:43
而这个列我给转成hh:mm:ss了
站长苏飞<sufei.1013@163.com> 10:07:41
DateTime?不能光写时间的
[北京]-冥狼() 10:08:04
那需要怎么处理呢?
站长苏飞<sufei.1013@163.com> 10:08:05
加上日期
站长苏飞<sufei.1013@163.com> 10:08:21
你发下代码吧
[北京]-冥狼() 10:08:29
可是我不需要日期的
[北京]-冥狼() 10:08:57
[code=sql] string selectSQL = "select ar_tab.id as '编号',emp_tab.name as '姓名',ar_tab.ontime as '签到时间',ar_tab.offtime as '签退时间',SEC_TO_TIME(TIMESTAMPDIFF(second,ontime,offtime)) as '工作时间' from ar_tab LEFT JOIN emp_tab on ar_tab.emp_id=emp_tab.id order by ar_tab.id desc;";[/code]
[北京]-冥狼() 10:09:04
这个是我的查询SQL
站长苏飞<sufei.1013@163.com> 10:09:45
不要你直接在GridView里把这一列的格式设置成字符串啊,别设置成日期格式
站长苏飞<sufei.1013@163.com> 10:09:50
这样就不会报错了
[北京]-冥狼() 10:10:03
DataSet dataSet = new DataSet();
MySQLDataAdapter dataAdapter = new MySQLDataAdapter();
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataSet, "ar_tab");
dgvInfo.DataSource = dataSet.Tables["ar_tab"];
[成都]看看路过() 10:10:11
冥狼 还在纠结这个问题??
[北京]-冥狼() 10:10:29
现在是已经转出来了
[北京]-冥狼() 10:10:47
就是填充到DataGridView中出异常
[北京]-冥狼() 10:11:06
站长苏飞<sufei.1013@163.com> 10:11:05
填充后的列类型是可以修改的,你是直接新建的列吧。列的类型是要吧修改的,
[北京]-冥狼() 10:11:29
使用MySQL的SEC_TO_TIME方法
[北京]-冥狼() 10:11:44
我没有建列的
站长苏飞<sufei.1013@163.com> 10:12:22
你发一下怎么绑定的
[北京]-冥狼() 10:12:44
已经发了的
[北京]-冥狼() 10:13:00
就是查询以后使用
[北京]-冥狼() 10:13:05
这个填充的
[北京]-冥狼() 10:13:23
在控件中没有做任何图形设置
[北京]-冥狼() 10:13:39
站长苏飞<sufei.1013@163.com> 10:15:28
[code=csharp] DataTable dt = new DataTable();
dt.Columns["列名"].DataType = Type.GetType("System.String");[/code]
站长苏飞<sufei.1013@163.com> 10:15:49
看看我的代码,修改一下你的列就行了
[北京]-冥狼() 10:16:52
不行,还是一样
站长苏飞<sufei.1013@163.com> 10:17:54
代码怎么加的
站长苏飞<sufei.1013@163.com> 10:18:03
这个是修改DataTable
[成都]看看路过() 10:18:38
然后foreach 一下??
站长苏飞<sufei.1013@163.com> 10:18:34
本来想给你写一点的,结果让你发代码你了个图片,表示费力不想写,
[北京]-冥狼() 10:19:10
[code=csharp]DataSet dataSet = new DataSet();
MySQLDataAdapter dataAdapter = new MySQLDataAdapter();
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataSet, "ar_tab");
dgvInfo.DataSource = dataSet.Tables["ar_tab"];[/code]
[北京]-冥狼() 10:19:13
[北京]-冥狼() 10:19:16
上面有文字的
站长苏飞<sufei.1013@163.com> 10:19:39
你是怎么加的我刚发的代码
[北京]-冥狼() 10:20:10
这这段上面加的
站长苏飞<sufei.1013@163.com> 10:21:04
发一下看看
站长苏飞<sufei.1013@163.com> 10:21:25
[code=csharp]DataSet dataSet = new DataSet();
MySQLDataAdapter dataAdapter = new MySQLDataAdapter();
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataSet, "ar_tab");
DataTable dt = new DataTable();
dt = dataSet.Tables["ar_tab"];
dt.Columns["列名"].DataType = Type.GetType("System.String");
dgvInfo.DataSource = dt;[/code]
[北京]-冥狼() 10:21:38
[北京]-冥狼() 10:21:36
站长苏飞<sufei.1013@163.com> 10:22:14
我了个去,你加这有什么用呢?你加了都没有使用啊,你用我刚发的那段
[北京]-冥狼() 10:22:22
[北京]-冥狼() 10:23:05
在运行到 dataAdapter = dataSet.Tables["ar_tab"];就。。。
[北京]-冥狼() 10:23:41
站长苏飞<sufei.1013@163.com> 10:23:36
你是在这里出的错啊,到现在才知道问题在那?总以为你是在绑定GridView时出的错,哎,那这是Sql的问题,
[北京]-冥狼() 10:23:47
换个以后。。。
[北京]-冥狼() 10:24:11
[北京]-冥狼() 10:24:17
SQL执行木有问题
站长苏飞<sufei.1013@163.com> 10:24:13
不要加了加了也不对,
[深圳] 小易() 10:24:32
能看到数据吗
[北京]-冥狼() 10:24:44
看不到
站长苏飞<sufei.1013@163.com> 10:24:45
你加的地方都不对,你看清楚我写的代码顺序,先绑定才能修改,你直接修改列类型,列都没有创建呢怎么修改呢?
站长苏飞<sufei.1013@163.com> 10:25:13
站长苏飞<sufei.1013@163.com> 10:25:22
这些空,不能这样写啊,要写一个默认的时间
[北京]-冥狼() 10:25:33
都有异常的呢
站长苏飞<sufei.1013@163.com> 10:25:43
要然就是得事先组织一个Table去接收了,
[北京]-冥狼() 10:25:52
默认时间怎么加呢?
站长苏飞<sufei.1013@163.com> 10:25:51
使用Case
站长苏飞<sufei.1013@163.com> 10:26:01
如果为空就默认一个时间
[北京]-冥狼() 10:26:09
我不会的呢
[北京]-冥狼() 10:30:32
dataAdapter.Fill(dataSet, "ar_tab");
站长苏飞<sufei.1013@163.com> 10:30:29
[code=sql](CASE WHEN createtime IS NULL THEN '默认时间' ELSE createtime END)AS 'fd'[/code]
[北京]-冥狼() 10:30:44
那为什么执行到这句的时候就有异常呢?
站长苏飞<sufei.1013@163.com> 10:30:40
把你的时间都转成这样的就行了,
站长苏飞<sufei.1013@163.com> 10:30:56
这句是去数据库取数据的,
站长苏飞<sufei.1013@163.com> 10:31:03
就是执行Sql的
[北京]-冥狼() 10:32:07
在SQL里面加?
站长苏飞<sufei.1013@163.com> 10:33:02
对啊,
[北京]-冥狼() 10:34:14
怎么加啊?
站长苏飞<sufei.1013@163.com> 10:36:09
安我上面的格式你加加吧,把 我的Create换成你的时间就行了
[北京]-冥狼() 10:37:21
[北京]-冥狼() 10:37:36
能不能给我一句完整的呢,我对SQL不熟的
站长苏飞<sufei.1013@163.com> 10:39:31
干写的测试下
站长苏飞<sufei.1013@163.com> 10:39:31
[code=sql]SELECT (CASE WHEN createtime IS NULL THEN '12' ELSE '0' END)AS 'fd' FROM dbo.app_apps
select ar_tab.id as '编号',emp_tab.name as '姓名',
(CASE WHEN ar_tab.ontime IS NULL THEN '2010-02-04 01:25:24' ELSE ar_tab.ontime END)AS '签到时间',
(CASE WHEN ar_tab.offtime IS NULL THEN '2010-02-04 01:25:24' ELSE ar_tab.offtime END)AS '签退时间',
(CASE WHEN SEC_TO_TIME(TIMESTAMPDIFF(second,ontime,offtime)) IS NULL THEN '2010-02-04 01:25:24' ELSE SEC_TO_TIME(TIMESTAMPDIFF(second,ontime,offtime)) END)AS '工作时间'
from ar_tab LEFT JOIN emp_tab on ar_tab.emp_id=emp_tab.id order by ar_tab.id desc;[/code]
我给你说个简单的方法
[code=csharp]DataTable dt_Sale = new DataTable();
DataColumn dc = null;
//开始时间
dc = new DataColumn();
dc.ColumnName = "st";
dc.DefaultValue = " ";
dc.DataType = Type.GetType("System.String");
dt_Sale.Columns.Add(dc);
//结束时间
dc = new DataColumn();
dc.ColumnName = "et";
dc.DefaultValue = " ";
dc.DataType = Type.GetType("System.String");
dt_Sale.Columns.Add(dc);[/code]
像我这样把你的列都定义出来,
然后使用 这个接收数据再绑定应该是可以的
|
|