VC++对数据库的操作?

我想从数据库中提取出指定的一列然后显示在编辑框内。编辑框得变量为m_strSource,我用ODBC连得数据库,请告诉我具体的程序UpdateData(TRUE);CSt... 我想从数据库中提取出指定的一列然后显示在编辑框内。编辑框得变量为m_strSource,我用ODBC连得数据库,请告诉我具体的程序
UpdateData(TRUE);
CString m_column28;
int i=1;
//m_strSource.DeleteAllItems();
CLoadSet m_recordset(&m_database);
CString strSQL;
//选择内容简介
strSQL.Format("select * from marc where 内容简介='%s'",m_column28);
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_recordset.GetRecordCount()!=0)
m_recordset.MoveFirst();
if(!m_recordset.IsEOF())
{
m_strSource+=strSQL;
}
i++;
这是我写的程序?问题出在哪呢?
void CFenCiDlg::OnBtnLoadFile()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CDBVariant varValue[200] [31];
CLoadSet m_recordset;
int j=m_recordset.GetDatabase(varValue);
int k;
int i=0;
for(k=0;k<j;k++)
{
m_strSource=varValue[k] [28].m_pstring->GetBuffer(1);
}
UpdateData(FALSE);
}

int CLoadSet::GetDatabase(CDBVariant varValue[] [31])
{
CLoadSet m_recordset(&m_database);
CString strSQL;
CString m_strSource;
strSQL.Format("select * from marc");
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_recordset.GetRecordCount()!=0)
m_recordset.MoveFirst();
int j=0;
while(!m_recordset.IsEOF())
{
m_recordset.GetFieldValue(28,varValue[j] [28]);
j++;
m_recordset.MoveNext();
}
m_recordset.Close();
return j;
}
我把程序改成这样了!运行的时候出现debug assertion failed!
file:dbcore.cpp,忽略后显示“程序类型越界”
这又是什么问题呢?
展开
 我来答
sofdok
2009-05-20 · TA获得超过326个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:352万
展开全部
你写的这个m_strSource+=strSQL; 没有用啊?也没有事先进行查询。
可以这样:
UpdateData(TRUE);
CDBVariant var;
memset(var,0,sizeof(Var));
m_recordset.strFilter = strSQL;//这个SQL语句根据你的需要自己写
m_recordset.Requery();
while(!m_recordset.IsEOF() && m_recordset.GetCount() > 0)
{
for(int i = 0; i<m_recordset.m_nFields-1; i+=1)
{
GetFieldValue(i,var);
switch(var.m_dwType)
{
case DBVT_STRING:
case DBVT_WSTRING:
m_strSource += *var.m_pstring;
break;
case DBVT_LONG:
break;
m_strSource += itoa(var.m_lVal);//如果是UNICODE则是_wtoa(var.m_lVal);
//等等
default:
m_strSource += "?";
}
m_strSource += m_recordset.
}
UpdateData(FALSE);
//jiangmeng,2009,5,20
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式