总出现类型不比配提示Type mismatch in expression
总出现类型不比配提示Type mismatch in expression
我的这段代码是
void __fastcall TfmLogin::Button1Click(TObject *Sender)
{
short count = 0;
if(Edit1->Text =="" || Edit2->Text =="")
{
ShowMessage("用户名或密码不能为空!");
return;
}
Query1->SQL->Clear();
Query1->SQL->Add("select count(*) as 数量");
Query1->SQL->Add("from Use.db");
Query1->SQL->Add("where 用户名=:id and 密码=:pwd and 权限级别=:qx");
Query1->Params->Items[0]->AsString = Edit1->Text.Trim() ;
Query1->Params->Items[1]->AsString = Edit2->Text.Trim() ;
Query1->Params->Items[2]->AsString = ComboBox1->Text.Trim();
Query1->ExecSQL();
Query1->Open();
count = Query1->FieldByName("数量")->AsInteger;
Query1->Close();
用paradox 做的表 表的结构是
用户名 S
密码 S
权限级别 A
这个是个登陆的代码 请问我应该改哪些地方 才能改正这个错误呢
[解决办法]
用户名,密码是S(short)类型?
那你在输入时,用户名及密码必须都是数字(-32,768 through 32,767 )
权限级别 A(alpha)是字符型,那你赋值时要加一对''号
Query1->Params->Items[2]->AsString =QuotedStr(ComboBox1->Text.Trim());
[解决办法]
Type mismatch in expression
注意这个错误发生行的代码。
[解决办法]
哪一句出错了?
[解决办法]
Query1->SQL->Add("where 用户名=:id and 密码=:pwd and 权限级别=:qx");
如果你的字段,是字符类型的,那么应该加上两个单引号啊。。。
Query1->SQL->Add("where 用户名='id' and 密码='pwd' and 权限级别=qx");