用delphi做修改按钮的时候因为数据有空值 当数据为空时候不能修改报错显示错误类型的值
withADOQuery1do//将修改后的学生数据提交给数据表studentbeginSQL.Clear;sql.Text:='updatestudentset学号=:...
with ADOQuery1 do
//将修改后的学生数据提交给数据表student
begin
SQL.Clear;
sql.Text:='update student set 学号=:a,姓名=:b,高数=:c,操作系统=:d,大学英语=:e,金融学=:f,土木工程=:g,专业=:h where 学号='+edit1.Text+'';
parameters.ParamByName('a').Value:=edit1.Text;
parameters.ParamByName('b').Value:=edit2.Text;
parameters.ParamByName('c').Value:=edit3.Text;
parameters.ParamByName('d').Value:=edit4.Text;
parameters.ParamByName('e').Value:=edit5.Text;
parameters.ParamByName('f').Value:=edit6.Text;
parameters.ParamByName('g').Value:=edit7.Text;
parameters.ParamByName('h').Value:=edit8.Text;
ExecSQL;
请问下 这个直接在下面的赋值语句中修改怎么修改 或者有什么别的方法
数字是float学号是int 展开
//将修改后的学生数据提交给数据表student
begin
SQL.Clear;
sql.Text:='update student set 学号=:a,姓名=:b,高数=:c,操作系统=:d,大学英语=:e,金融学=:f,土木工程=:g,专业=:h where 学号='+edit1.Text+'';
parameters.ParamByName('a').Value:=edit1.Text;
parameters.ParamByName('b').Value:=edit2.Text;
parameters.ParamByName('c').Value:=edit3.Text;
parameters.ParamByName('d').Value:=edit4.Text;
parameters.ParamByName('e').Value:=edit5.Text;
parameters.ParamByName('f').Value:=edit6.Text;
parameters.ParamByName('g').Value:=edit7.Text;
parameters.ParamByName('h').Value:=edit8.Text;
ExecSQL;
请问下 这个直接在下面的赋值语句中修改怎么修改 或者有什么别的方法
数字是float学号是int 展开
展开全部
当数据为空时不能修改?
那你应该在拼接sql语句前就判断不能为空的字段。如果为空就提示用户输入。
如果有值 但是类型有问题的话,可以加上try catch,获取错误信息
那你应该在拼接sql语句前就判断不能为空的字段。如果为空就提示用户输入。
如果有值 但是类型有问题的话,可以加上try catch,获取错误信息
更多追问追答
追问
我就是要有空值的输入 因为不同专业有的课程不涉及到的课值就为空 如果全部课程都输入在修改就没有问题
追答
那你的这种表设计就不合理啊 。
你直接做一个科目表、一个成绩表
成绩表 就3个字段 学号,科目,成绩
如果这个学生有10个科目
那么成绩表中就存10条数据。
当然 你的设计也可以
但是如果你这样设计的话 如果这个学生只有 高数,英语 没有 金融, 那你金融直接存空值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下你的数据库是否将这些字段设置成了必填字段。如果设置成了必填字段则修改数据库,将这些字段的属性改为可以为空。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if edit1.Text<>'' then
parameters.ParamByName('a').Value:=edit1.Text;
另外还得修改,字段的属性,为可以为空,数字字段,不屑修改,它身已经被0填充.
parameters.ParamByName('a').Value:=edit1.Text;
另外还得修改,字段的属性,为可以为空,数字字段,不屑修改,它身已经被0填充.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用try语句
追问
前面有try没复制下来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询