void query::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_qlist.DeleteAllItems();
ADOConn ado;
CString sql,temp;
sql.Format("select sname,cname,xname,stime from student,class where student.cname=class.cname");
if(m_qname.IsEmpty()&&m_classn.IsEmpty()&&m_deptn.IsEmpty())
{
MessageBox("请输入你要查询的信息");
return;
}
if(!m_qname.IsEmpty())
{
temp="and sname like '"+m_qname+"%'";
sql+=temp;
}
if(!m_classn.IsEmpty())
{
temp="and cname like '"+m_classn+"%'";
sql+=temp;
}
if(!m_deptn.IsEmpty())
{
temp="and dept like '"+m_deptn+"%'";
sql+=temp;
}
if(m_orderlaw=="升序")
sql+="order by sname asc";
else
sql+="order by sname desc";
_RecordsetPtr rs;
rs=ado.GetRecordset((_bstr_t)sql);
if(rs->adoEOF)
MessageBox("没有你要找的信息!");
while(!rs->adoEOF)
{
m_qlist.InsertItem(0,"");
m_qlist.SetItemText(0,0,(char*)(_bstr_t)rs->GetCollect("sname"));
m_qlist.SetItemText(0,1,(char*)(_bstr_t)rs->GetCollect("cname"));
m_qlist.SetItemText(0,2,(char*)(_bstr_t)rs->GetCollect("xname"));
m_qlist.SetItemText(0,3,(char*)(_bstr_t)rs->GetCollect("stime"));
rs->MoveNext();
}
m_qname="";
m_classn="";
m_deptn="";
UpdateData(FALSE);
}执行错误在说: 第一行:'sname'附近有语法错误请给位大侠赐教!急啊!!!!
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_qlist.DeleteAllItems();
ADOConn ado;
CString sql,temp;
sql.Format("select sname,cname,xname,stime from student,class where student.cname=class.cname");
if(m_qname.IsEmpty()&&m_classn.IsEmpty()&&m_deptn.IsEmpty())
{
MessageBox("请输入你要查询的信息");
return;
}
if(!m_qname.IsEmpty())
{
temp="and sname like '"+m_qname+"%'";
sql+=temp;
}
if(!m_classn.IsEmpty())
{
temp="and cname like '"+m_classn+"%'";
sql+=temp;
}
if(!m_deptn.IsEmpty())
{
temp="and dept like '"+m_deptn+"%'";
sql+=temp;
}
if(m_orderlaw=="升序")
sql+="order by sname asc";
else
sql+="order by sname desc";
_RecordsetPtr rs;
rs=ado.GetRecordset((_bstr_t)sql);
if(rs->adoEOF)
MessageBox("没有你要找的信息!");
while(!rs->adoEOF)
{
m_qlist.InsertItem(0,"");
m_qlist.SetItemText(0,0,(char*)(_bstr_t)rs->GetCollect("sname"));
m_qlist.SetItemText(0,1,(char*)(_bstr_t)rs->GetCollect("cname"));
m_qlist.SetItemText(0,2,(char*)(_bstr_t)rs->GetCollect("xname"));
m_qlist.SetItemText(0,3,(char*)(_bstr_t)rs->GetCollect("stime"));
rs->MoveNext();
}
m_qname="";
m_classn="";
m_deptn="";
UpdateData(FALSE);
}执行错误在说: 第一行:'sname'附近有语法错误请给位大侠赐教!急啊!!!!
解决方案 »
- 在VC6.0对话框工程中使用了CActiveMovie2的ActiveMovie控件能播放但不出图象窗口
- 请问一下,VC++中View文档如何调用已在对话框中改变的Doc文档的变量,各位知道的请帮帮忙!谢谢!
- 哪位朋友有类似Install Shield打包工具的源代码或者其他的打包工具的源代码??
- 重叠放置的两个控制,如何设置上下顺序?
- CFtpConnection如何实现ftp中mget的功能?
- 很急的一个问题,怎样屏蔽掉esc键?再线等待,谢谢了!
- 一分钟得100分,事后还有100分!
- 多文档菜单栏前的图标如何修改?
- 在VC里调用动态连接库函数
- 紧急:请问哪里可以找到icq中用的SOCKET4,SOCKET5协议的资料?
- 求救:哪位高手知道如何在richedit中实现表格功能??
- CSocket的OnReceive不能触发
大概格式是这样的
select t1.Field1, t2.Field1, t1.Field2 from t1, t2 where t1.Field1 = t2.Field1 and t1.Field1 like '%sss'
select sname,cname,xname,stime from student,class where student.cname=class.cname
改为
select sname,cname,xname,stime from student s inner join class c where s.cname=c.cname不太确定你是不是要inner join,根据你的实际情况修改联接方式吧~
{
//要测试的代码
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
你的两个表中都有cname这个字段 查询的时候 要注明表名的
select sname,student.cname,xname,stime from student,class where student.cname=class.cname
所有在两个表中都有的字段都要加上表名限制
(
cname varchar(20) primary key,
xname varchar(20) foreign key references xueyuan(xname)
)create table student
(
sname varchar(20) primary key,
cname varchar(20) foreign key references class(cname),
stime datetime default'2007-9-1'
)
这是查询分析器中的代码
谢谢!
如果SQL中没有问题再看程序