| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 886 人关注过本帖
标题:数据类型不匹配,帮忙 看下
只看楼主 加入收藏
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:16 
数据类型不匹配,帮忙 看下
运行后客户可以选择,日期自动添加了,其他都是灰色:这个把关联取消好了(数据环境的数据库关联,即直接在数据库中拖拉进去的)
WITH thisform
USE D:\cast.dbf
insert into CAST(客户,c_图号,c_版本,c_规格,c_型号,c_铸件号,c_备注,c_日期) VALUES (,thisform.txtC_图号.Value,thisform.txtC_版本.Value,thisform.txtC_规格.Value,thisform.txtC_型号.Value,thisform.txtC_铸件号.Value,thisform.edtC_备注.Value,thisform.txtC_日期.Value)
thisform.Refresh
ENDWITH
前面加上TR_DATA=ctod(alltrim(thisform.txtC_日期.value) )转换为日期型后ok了
很感谢各位哦

[ 本帖最后由 freejike 于 2013-12-12 09:47 编辑 ]
搜索更多相关主题的帖子: 数据库 规格 型号 
2013-12-11 14:57
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
不知楼主列出的代码是放在表单的哪些事件里?
 问题2,点添加后,出现数据类型不匹配。

 在表单的init事件里加入代码将各文本框等赋初值:例如,thisform.txtC_图号="",thisform.txtC_版本=""……

 问题4,如何简化这个添加按钮代码
WITH thisform
    insert into CAST(客户,c_图号,c_版本,c_规格,c_型号,c_铸件号,c_日期,c_备注) VALUES (.list1,.txtC_图号,.txtC_版本,.txtC_规格,.txtC_型号,.txtC_铸件号,.txtC_日期,.edtC_备注)
     .Refresh
 ENDWITH

相互学习,互相交流,共同提高。
2013-12-11 15:55
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
收藏
得分:0 
回复 2楼 qjbzjp
谢谢,我试出来了,是日期弄错了,都是放点添加按纽的click中,我的日期init中写了thisform.txtC_日期.value=dtoc(datetime())
取当前日期。
数据库中的日期也是日期格式,怎么才能添加进去呢?谢谢你帮忙
2013-12-11 16:21
Eric1111
Rank: 2
等 级:论坛游民
威 望:1
帖 子:183
专家分:88
注 册:2013-11-25
收藏
得分:0 
回复 楼主 freejike
那个备注貌似不行的哈,如果你的备注要写很多东西,那就最好用字符型
2013-12-11 16:22
Eric1111
Rank: 2
等 级:论坛游民
威 望:1
帖 子:183
专家分:88
注 册:2013-11-25
收藏
得分:0 
回复 楼主 freejike
添加:
APPEND BLANK IN 表1
THISFORM.Refresh
保存:
IF messagebox('确定要保存吗?',32+4,'系统提示') =6
    = TABLEUPDATE(.T.,.F., '表1)  
    messagebox('保存成功',0+64,'系统提示')
    thisform.Refresh
ENDIF
这个是之前的前辈给我用的,你看看
2013-12-11 16:25
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
收藏
得分:0 
回复 4楼 Eric1111
试了下可以添加,只要删除添加日期,但不知道怎么修改日期才能添加
2013-12-11 16:30
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用freejike在2013-12-11 14:57:29的发言:

USE D:\cast
客户=alltrim(thisform.List1.value)
c_图号=alltrim(thisform.TxtC_图号.value)
c_版本=ALLTRIM(thisform.TxtC_版本.value)
c_规格=ALLTRIM(thisform.txtC_规格.Value)
c_型号=ALLTRIM(thisform.txtc_型号.Value)
c_铸件号=ALLTRIM(thisform.txtC_铸件号.Value)
c_日期=thisform.txtC_日期.Value
c_备注=thisform.edtC_备注.Value
 
WITH thisform  
insert into CAST(客户,c_图号,c_版本,c_规格,c_型号,c_铸件号,c_日期,c_备注) VALUES (thisform.list1,thisform.txtC_图号,thisform.txtC_版本,thisform.txtC_规格,thisform.txtC_型号,thisform.txtC_铸件号,thisform.txtC_日期,thisform.edtC_备注)
thisform.Refresh
ENDWITH  
 
 
日期和客户没有关联表
 
本人初学者,各位谢谢了
问题1,运行后客户可以选择,日期自动添加了,其他都是灰色
问题2,点添加后,出现数据类型不匹配。
问题3,为什么要添加with和endwith
问题4,如何简化这个添加按钮代码
 

初步看了下(上班忙,没时间仔细研究),问题有仨:
1、INSERT的VALUES子句中应该是“Thisform.控件名.VALUE”,不是你现在的“Thisform.控件名”。因为控件名不能作为值赋予字段。另外,你既然INSERT语句是插在WITH...ENDWITH语句套里的,VALUE子句中“Thisform.控件名.VALUE”应该写成“.控件名.VALUE”这样的形式。但我不知道VFP是不是支持这种写法,我只知道WITH...ENDWITH语句套里可以写“[.WITH控件的下级控件名].属性=属性值”进行控件属性赋值或“[.WITH控件的下级控件名].方法名”来执行某控件的方法程序;
2、应该是延续问题1的。既然你已经在之前把各控件的值都赋给了变量,为什么在INSERT语句中不用这些变量对字段进行赋值呢?
3、CAST()是一个函数,怎么能对一个函数进行赋值呢?当然,你说那个“CAST”是一个表名,但你“CAST(... , ...)”的形式叫VFP如何认为这不是一个函数呢?所以,建议你把表文件名称改一下。对于新手,如果想以后一直编程,养成一个良好的编程习惯是很重要的,好习惯的其中之一就是各种VFP文件的主干名,以及内存变量名、字段变量名、常量名、自定义过程名、自定义函数名不要取与VFP关键字、内部函数、内部变量同名。否则,在程序运行中可能会发生一些莫名其妙的问题。
2013-12-11 16:30
Eric1111
Rank: 2
等 级:论坛游民
威 望:1
帖 子:183
专家分:88
注 册:2013-11-25
收藏
得分:4 
回复 3楼 freejike
我也想知道如何添加当前的日期,如果你找到答案,不妨给我也看看,谢谢
2013-12-11 16:30
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
收藏
得分:0 
回复 5楼 Eric1111
谢谢,我添加进去学习学习
2013-12-11 16:31
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
收藏
得分:0 
回复 7楼 taifu945
谢谢您抽出宝贵时间指点,确实要加value。谢谢你

[ 本帖最后由 freejike 于 2013-12-11 16:36 编辑 ]
2013-12-11 16:34
快速回复:数据类型不匹配,帮忙 看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043082 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved