在线的各位大哥,帮帮忙,有点急!
下面是我写的代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
//创建连接字符串
F_Connection := TADOConnection.Create(nil);
with F_Connection do
begin
if Connected then Connected := false;
ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=False;User ID=sa;Initial Catalog=LZH_Test;Data Source=LIUZHIHUA';
CommandTimeout := 10;
LoginPrompt := false;
Open;
end;
F_Query := TADOQuery.Create(nil);
with F_Query do
begin
SQL.Clear();
if Active then close();
Connection:= F_Connection;
SQL.Add('select * from UserLogin where (UName:=name) and (UPwd := pwd)');
//调试到这里的时候,就报错了,然后我想在SQL语句中直接赋值,也不行,那个值就算我给的 是string类型,但他在数据库中执行的时候,给我自己转换成列名了...也报错
Parameters.ParamByName('name').Value:=edit1.Text;
Parameters.ParamByName('pwd').Value:=edit2.Text;
Open;
end;
end;
谁能告诉我这是为什么呢?
[解决办法]
SQL.Add('select * from UserLogin where (UName=:name) and (UPwd = :pwd)');
[解决办法]
按楼上方法试试先吧:等号在前冒号在后
[解决办法]
先在設計階段加入連接及查詢部件,調試好SQL等後,再用動態建立的方法。建議連接部件還是用靜態建立好。
[解决办法]
with F_Query do
begin
SQL.Clear();
Connection := F_Connection;
SQL.Add('insert into UserLogin (UName,UPwd) values(:name,:pwd)');
Parameters.ParamByName('name').Value := edit1.Text;
Parameters.ParamByName('pwd').Value := edit2.Text;
ExecSQL;//Open;这里改为ExecSQL,你还想要返回什么结果?
end;
[解决办法]
哈哈,
后面这个不是用Open,用ExecSQL;
要返回数据的用Open,比如Select查询
增加、删除、修改数据什么的用ExecSQL,比如Insert into,delete
[解决办法]