DM.qry3.SQL.Add('update cszl set khmc=:khmc where num=:num');
DM.qry3.Parameters.ParamByName('num').Value:=dbtxtnum.Caption;
DM.qry3.Parameters.ParamByName('khmc').Value:=dbedtkhmc.Text;
一直报“应用程序在当前操作中使用了错误类型的值” 请问是什么原因?
8 个解决方案
#1
DM.qry3.Parameters.ParamByName('num').Value:=dbtxtnum.Caption;
或许你的num是个数字,那么试试改成这样
DM.qry3.Parameters.ParamByName('num').Value:=strtoint(dbtxtnum.Caption);
如果还不行,去看看num,khmc这两个字段在数据库中的数据类型。
或许你的num是个数字,那么试试改成这样
DM.qry3.Parameters.ParamByName('num').Value:=strtoint(dbtxtnum.Caption);
如果还不行,去看看num,khmc这两个字段在数据库中的数据类型。
#2
num是int类型的,khmc是nvarchar类型的
按你的方法修改了之后再其他地方出现了错误
''' is not a valid integer value'
之前用update cszl set 其他字段 where kumc=:khmc是可以的
就是后来添加了一个num字段,int类型,用它来做where的条件就有问题了。
按你的方法修改了之后再其他地方出现了错误
''' is not a valid integer value'
//单击某个按钮
var
s:String;
begin
s:=dbgrd1.DataSource.DataSet.Fields[6].AsString;//这个就是我的num字段
ShowMessage(s);
DM.qry2.close;
DM.qry2.SQL.Clear;
DM.qry2.SQL.add('select * from cszl where num='+QuotedStr(s));
DM.qry2.open;
cszlxq.ShowModal;//最后停在了这里
end;
之前用update cszl set 其他字段 where kumc=:khmc是可以的
就是后来添加了一个num字段,int类型,用它来做where的条件就有问题了。
#3
DM.qry2.SQL.add('select * from cszl where num='+QuotedStr(s));
改成
DM.qry2.SQL.add('select * from cszl where num='''+QuotedStr(s)+''' ');
#4
你这一个接一个的问题啊,等下你代码别的地方没写好,又得问了。
#5
照上面改不行啊,报错。。。连cszlxq.ShowModal;都出不来了,直接停在project 的代码里面了。
问题还是由于第一个问题引起的啊。。。
问题还是由于第一个问题引起的啊。。。
#6
报错报的是什么。
#7
num khmc两个字段可能不是string类型的,
所以用DM.qry3.Parameters.ParamByName('num').string试试。
所以用DM.qry3.Parameters.ParamByName('num').string试试。
#8
谢谢楼上的帮忙。
不懂为什么,我的qry3不灵,我不用num做条件,用khmc做条件修改也不行。虽然程序没有报错,但是运行下来却不能修改数据库中的数据。
后来我就把qry3改为了qry1就能修改了。。。。。一切正常。
qry1是给dbgrid显示数据用的。
搞不清楚啥原因。。。
不懂为什么,我的qry3不灵,我不用num做条件,用khmc做条件修改也不行。虽然程序没有报错,但是运行下来却不能修改数据库中的数据。
后来我就把qry3改为了qry1就能修改了。。。。。一切正常。
qry1是给dbgrid显示数据用的。
搞不清楚啥原因。。。
#1
DM.qry3.Parameters.ParamByName('num').Value:=dbtxtnum.Caption;
或许你的num是个数字,那么试试改成这样
DM.qry3.Parameters.ParamByName('num').Value:=strtoint(dbtxtnum.Caption);
如果还不行,去看看num,khmc这两个字段在数据库中的数据类型。
或许你的num是个数字,那么试试改成这样
DM.qry3.Parameters.ParamByName('num').Value:=strtoint(dbtxtnum.Caption);
如果还不行,去看看num,khmc这两个字段在数据库中的数据类型。
#2
num是int类型的,khmc是nvarchar类型的
按你的方法修改了之后再其他地方出现了错误
''' is not a valid integer value'
之前用update cszl set 其他字段 where kumc=:khmc是可以的
就是后来添加了一个num字段,int类型,用它来做where的条件就有问题了。
按你的方法修改了之后再其他地方出现了错误
''' is not a valid integer value'
//单击某个按钮
var
s:String;
begin
s:=dbgrd1.DataSource.DataSet.Fields[6].AsString;//这个就是我的num字段
ShowMessage(s);
DM.qry2.close;
DM.qry2.SQL.Clear;
DM.qry2.SQL.add('select * from cszl where num='+QuotedStr(s));
DM.qry2.open;
cszlxq.ShowModal;//最后停在了这里
end;
之前用update cszl set 其他字段 where kumc=:khmc是可以的
就是后来添加了一个num字段,int类型,用它来做where的条件就有问题了。
#3
DM.qry2.SQL.add('select * from cszl where num='+QuotedStr(s));
改成
DM.qry2.SQL.add('select * from cszl where num='''+QuotedStr(s)+''' ');
#4
你这一个接一个的问题啊,等下你代码别的地方没写好,又得问了。
#5
照上面改不行啊,报错。。。连cszlxq.ShowModal;都出不来了,直接停在project 的代码里面了。
问题还是由于第一个问题引起的啊。。。
问题还是由于第一个问题引起的啊。。。
#6
报错报的是什么。
#7
num khmc两个字段可能不是string类型的,
所以用DM.qry3.Parameters.ParamByName('num').string试试。
所以用DM.qry3.Parameters.ParamByName('num').string试试。
#8
谢谢楼上的帮忙。
不懂为什么,我的qry3不灵,我不用num做条件,用khmc做条件修改也不行。虽然程序没有报错,但是运行下来却不能修改数据库中的数据。
后来我就把qry3改为了qry1就能修改了。。。。。一切正常。
qry1是给dbgrid显示数据用的。
搞不清楚啥原因。。。
不懂为什么,我的qry3不灵,我不用num做条件,用khmc做条件修改也不行。虽然程序没有报错,但是运行下来却不能修改数据库中的数据。
后来我就把qry3改为了qry1就能修改了。。。。。一切正常。
qry1是给dbgrid显示数据用的。
搞不清楚啥原因。。。