读书人

在线的帮帮忙有点急

发布时间: 2013-06-26 14:29:32 作者: rapoo

在线的各位大哥,帮帮忙,有点急!
下面是我写的代码:
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
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

SQL.Add('select * from UserLogin where (UName=:name) and (UPwd = :pwd)');

嗯嗯,我开始是这样写的他也报错。。。后面这个工具直接卡死,重启一下代码又还原了...好悲剧的


现在好了吧?

好了,那个已经可以了,不过我现在又遇到了一个问题:
{添加}
procedure TForm3.Button1Click(Sender: TObject);
begin
end;
这个地方我不知道该怎么弄这个参数,然后这个添加语句返回的结果,我不知道怎么接收...还得麻烦一下,谢谢!

还有这个地方这样能行吗?

SQL.Add('insert into UserLogin (UName,UPwd) values(:name,:pwd)');


可以的。

ExecSQL有返回值,但不晓得可不可以,你可以测试下。

读书人网 >.NET

热点推荐