AnsiString Str ;Str ="select count(*) as ct from tablename where sex=1"//or //Str ="select count(*) as ct from tablename where sex=2"ADOQuery1->Close();ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add(ls_Str );ADOQuery1->Open();if(!ADOQuery1->Eof){ lable1->Caption = ADOQuery1->FieldByName("ct ")->AsString ;} [解决办法] 可以 使用两次sql语句来得到 [解决办法]
[解决办法] 先连接SQL,用ADO连接, 先添加一个ADOConnection(在ADO栏里),Name是ADOConnection1 双击ADOConnection1的ConnectionString修改成 提供程序:Microsoft OLE db provider for SQL Server 后面那些用户名什么的你自己改成你要的。 再添加一个ADOQuery,名为ADOQuery1,将ADOQuery1的Connection属性改为ADOConnection1 在程序运行的时候 先调用 ADOConnection->Open();打开数据库 然后动态修改SQL语句,其中sqlstr为AnsiString型,例如 C/C++ codesqlstr = "Select * from Table1"; ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add(sqlstr); ADOQuery1->Open(); 其中最后一句ADOQuery1->Open();是对于SQL语句为SELECT型的,若是SQL语句为Insert、Delete之类的不返回数据集的语句 则将ADOQuery1->Open();修改为 ADOQuery1->ExecSQL();
[解决办法] 楼上的都说完了。。代码也给了。。 那我来打个酱油好了。。。。 [解决办法] SELECT sex, count(*) as ct FROM tablename GROUP BY sex
一次即可完成
[解决办法] 一次能查询完成.SQL语句如下
C/C++ code
AnsiString sSQL;sSQL = "select sum(case when sex = 1 then 1 else 0 end) sex1,sum(case when sex = 2 then 1 esle 0 end) sex2from table"ADO->SQL->Text = sSQL;ADO->Open;lable->Caption = "性别为1的有" + ADO->FieldByName("sex1")->AsString + "条记录,性别为2的有" + ADO->FieldByName("sex1")->AsString + "条记录"; [解决办法]