mfcsql查询
1. vc6 mfc sql怎样设置关键词查询,根据关键词确定要查询的问题
GetDlgItem(IDC_EDIT1)->GetWindowText(str);//得到输入的问题
strSql.Format("select answer from shuju where question like'%%%s%%'",str);
这是我的程序里的语句,他能实现模糊查询,
但是我数据库里的问题是今天天气如何,如果在对话框中输入 天气怎么样,或者今天天气咋样,就不能出来答案。希望朋友们帮帮忙!谢谢!
2. MFC对话框界面, 查询sql数据库计算百分比,将结果显示在list control中
class DBConnection
{
public:
DBConnection(void);
~DBConnection(void);
int OpenConnect(void);
int ExecuteSQL(_bstr_t strCmd);
_RecordsetPtr GetRecondSetPrt();
private:
_ConnectionPtr m_pConnection; //链接数据库德指针变量
_RecordsetPtr m_pRecordset; //指向记录集的指针
_variant_t RecordsAffected; //受影响的记录条数
};
DBConnection::DBConnection(void)
{
m_pConnection=NULL;
m_pRecordset=NULL;
}
DBConnection::~DBConnection(void)
{
m_pConnection=NULL;
m_pRecordset=NULL;
}
//打开数据库链接
int DBConnection::OpenConnect(void)
{
try
{
//创建连接对象
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect ="Provider=SQLOLEDB;Data Source=20110121-1545\\SQLEXPRESS;\
Initial Catalog=ExpManDB;User ID=sa;PWD=123";
//设置连接超时时间为5秒
m_pConnection->ConnectionTimeout = 5;
//连接数据库
m_pConnection->Open(strConnect, "", "", adModeUnknown);
return 1;
}
catch(_com_error e)
{
CString errorMsg;
errorMsg.Format(_T("连接数据库失败!\r错误信息:%s"),(LPCSTR)e.ErrorMessage());
AfxMessageBox(errorMsg);
return 0;
}
}
//返回受影响的记录条数
int DBConnection::ExecuteSQL(_bstr_t strCmd)
{
if(m_pConnection->State)
{
try
{
m_pRecordset.CreateInstance("ADODB.Recordset"); //为Recordset对象创建实例
//执行SQL语句,并返回受影响的记录条数
m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText);
return RecordsAffected.intVal;
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
return 0;
}
}
return 0;
}
//返回记录集以便后续使用
_RecordsetPtr DBConnection::GetRecondSetPrt()
{
return m_pRecordset;
}
可以像这样使用,strCmd为sql语句
DBConnection dbConnector;
if(dbConnector.OpenConnect() == 0)
{
return;
}
if(dbConnector.ExecuteSQL((_bstr_t)strCmd) == 0)
{
return;
}
当然如果你还需要取出数据的时候可以这样用
_RecordsetPtr pRecordSet;
pRecordSet=dbConnector.GetRecondSetPrt();
_variant_t vCardNo;
vCardNo = pRecordSet->GetCollect("cardNO"); //得到数据表种cardNO字段
后面_variant_t类型就可以转换为int float CString等各种类型了。
如果有什么问题再交流。
3. mfc 中 用SQL查询数据库时无结果
strSQL.Format("SELECT * from BookInfo where %s = '%s'",name,temp); // BID 不需要 ' ' 进行包含
4. MFC中的SQL查询语句返回空就报错怎么办
我也遇到过你这样的问题哦,
其实挺简单的,你如果不想报错,就要把数据库中
该列的NULL去掉,什么都不写就是,MFC中在读的时候,碰不到NULL,
它会什么都不显示,相当于_T(""),也就是读到列表控件中“sex”这列什么都没的。
试试吧,实在要留下NULL,也有判断的办法,我找到过,嫌麻烦没用它,这个需要你去搜搜
5. VC++ MFC 的一个SQL查询语句
CADODatabase m_DBCn;//数据库对象
CADORecordset m_Rs;//记录集对象
在头文件里
public:
CADORecordset m_Rs;//新增变量
CADODatabase m_DBCn;//新增变量
CDataGRid m_datagrid;//DataGrid控件对象
...
CString m_adodc; m_adodc.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;")
_T("Data Source=note.mdb"));
m_DBCn.Open((LPCTSTR)m_adodc); //打开程序数据库
m_Rs.SetDatabase(&m_DBCn); m_Rs.Open(_T("select * from list where id=1;")); //执行查询
m_datagrid.SetRefDataSource((LPUNKNOW)m_Rs.GetRecordset());//显示在DataGrid控件中
6. MFC从SQL里查询表中字段怎么查
获取所有字段名:
Select Name FROM SysColumns Where id=Object_Id('TableName')