帮忙看看哪错了?

特招 2004-04-15 08:20:58
String ed1;
String ed2;
if ((Edit1->Text!="")&&(Edit2->Text!=""))
{
ed1=Trim(Edit1->Text);
ed2=Trim(Edit2->Text);
LoginForm->ADOQuery1->Close();
LoginForm->ADOQuery1->SQL->Clear();
//关键可能是这个地方>>>
LoginForm->ADOQuery1->SQL->Add("select * from login_table where ((login_name="+ed1+")&&(login_password="+ed2+"))");
LoginForm->ADOQuery1->Open();
//以上<<<<<<<
if (ADOQuery1->RecordCount!=0)
{
MessageBox(LoginForm->Handle,"登录成功!欢迎使用学生管理信息系统!","信息提示",MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
LoginForm->Close();
LoginForm->ModalResult = 8;
}
else
MessageBox(LoginForm->Handle,"用户名或密码错误!请重新输入!","信息提示",MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);


}
else
MessageBox(LoginForm->Handle,"用户名和密码均不能为空!","信息提示",MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);

编译的时候没有错误,为什么一运行的时候就出错了呢?
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
特招 2004-04-19
  • 打赏
  • 举报
回复
Thanks!
呵呵 我把&&改成and 把ed1加上''就好使了
zzuheyong 2004-04-18
  • 打赏
  • 举报
回复
建议用sql monitor 跟踪一下你究竟向后台传宋了什么样的sql语句。
((login_name="+ed1+")我怀阿疑应该写成这样:
((login_name=‘"+ed1+"‘“)
也就时说,用一对单引号吧ed1的值保卫起来。
-------------------------------------
这是绝对正确的,sql语句里字段值是字符串时必须用单引号引起里
zzuheyong 2004-04-18
  • 打赏
  • 举报
回复
检查一下数据库里的login_password 的类型是int吗?
若是改为varchar
勉励前行 2004-04-17
  • 打赏
  • 举报
回复
你把斷點設在這行:
LoginForm->ADOQuery1->Open();
在open前你看看
LoginForm->ADOQuery1->SQL->Text的值是什麼,就知道你合成的SQL語句是對或錯。

如果你有管理員權限,也可以如 haofengfu(好风父) 所說監視傳送到SQL服務器的SQL語句,不過我認為還是設斷點直接看SQL語句是什麼來得快。

将varchar值'dyy '转换为数据类型为int的列时发生语法错误.
因為你將Edit->Text加到SQL語句中去,可能是某個Edit->Text == "dyy "吧。

多想一下,自已就能發現解決問題之道。多做一些,荊棘之途就慢慢平坦。在實踐中前進。
特招 2004-04-17
  • 打赏
  • 举报
回复
还是不行,错误提示是:将varchar值'dyy '
转换为数据类型为int的列时发生语法错误.

那里面也没有dyy这个值啊
junzhang66 2004-04-16
  • 打赏
  • 举报
回复
按上一位搂主的说法加单引号是不行的,改成and是应该的 另外我觉得没必要加这么多括号吧!看起来好吃力!把最外面的一个去掉
风斧 2004-04-16
  • 打赏
  • 举报
回复
建议用sql monitor 跟踪一下你究竟向后台传宋了什么样的sql语句。
((login_name="+ed1+")我怀阿疑应该写成这样:
((login_name=‘"+ed1+"‘“)
也就时说,用一对单引号吧ed1的值保卫起来。
勉励前行 2004-04-15
  • 打赏
  • 举报
回复
LoginForm->ADOQuery1->SQL->Add("select * from login_table where ((login_name="+ed1+")&&(login_password="+ed2+"))");
這裡合成的SQL語句出錯,&& 在SQL語法應該寫成 AND . 還有你應該看到出錯時的提示,一定要會看系統的出錯提示,因為那告訴你錯誤出在哪裡。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧