请教用Delphi编写数据库时出现的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:46:50
我用Access做了一个数据库,然后我用Delphi的Query组件来做一个数据库管理系统,来管理这个Access数据库.
但是,在我用SQL语句来对这里面的数据进行查询时,就出现了问题. (以下是其中的代码)

StudentForm.Query1.Close; //修改SQL语句之前先关闭Query组件
StudentForm.Query1.SQL.Clear; // 清除旧的SQL语句
StudentForm.Query1.SQL.Add('SELECT * FROM Student表1'); //添加新的SQL语句
StudentForm.Query1.SQL.Add('WHERE 学号='+EdtXueHao.Text);
//StudentForm.Query1.SQL.Add('WHERE 姓名='+EdtXingMing.Text);
StudentForm.Query1.Open; //执行SQL语句

StudentForm.Query1.SQL.Add('WHERE 学号='+EdtXueHao.Text); 这个当中的"学号"的数据类型是"长整形"
这一句代码是可以执行

但是,当执行这句代码时 StudentForm.Query1.SQL.Add('WHERE 姓名='+EdtXingMing.Text); 就总是不行了,

而这里的"姓名"的数据类型是"文本" ,在运行时,就总是显示出"Couble not fine object "

请问这应该怎样解决啊.我试了好多方法,好几十次了,都是这样啊,都是不行.

在SQL语句中如果有字符类型的字段条件的时候,需要在字符串两侧加'
//StudentForm.Query1.SQL.Add(' WHERE 姓名='''+EdtXingMing.Text) + '''';
另外看到你的WHERE同前面的表名之间没留空格,这样的话形成的SQL字符串会成为:
SELECT * FROM Student表1WHERE 学号=...
这样会出语法错误。

建议你写sql的时候养成好的习惯

XXX.SQL.Add(' XXXX ');把前面跟后面的空格都留出来.