VC查询MySQL数据库获取返回结果时出问题 100
初学MFC和数据库,求大神多多指教。以下是“查询”按钮下的代码,数据库已连接成功,但单机查询后直接弹出应用程序错误对话框,“0x1000f31f”指令引用的"oxoooo...
初学MFC和数据库,求大神多多指教。以下是“查询”按钮下的代码,数据库已连接成功,但单机查询后直接弹出应用程序错误对话框,“0x1000f31f”指令引用的"oxooooooo4"内存。该内存不能为read。不知道是代码出了问题还是什么,求帮忙~谢谢大家!
void CGraduationDlg::OnSeek()
{
// TODO: Add your control notification handler code here
nparameter = m_parameter.GetCurSel()+1;
nchannel = m_channel.GetCurSel()+1;
nport= m_port.GetCurSel()+1;
char *ch_query;
ch_query="select * from presinfo";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0)
{ AfxMessageBox("数据库中表格出错"); }
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql)))
{ AfxMessageBox("读取数据集失败"); }
int i=0;
while(row=mysql_fetch_row(result))
{
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
} 展开
void CGraduationDlg::OnSeek()
{
// TODO: Add your control notification handler code here
nparameter = m_parameter.GetCurSel()+1;
nchannel = m_channel.GetCurSel()+1;
nport= m_port.GetCurSel()+1;
char *ch_query;
ch_query="select * from presinfo";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0)
{ AfxMessageBox("数据库中表格出错"); }
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql)))
{ AfxMessageBox("读取数据集失败"); }
int i=0;
while(row=mysql_fetch_row(result))
{
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
} 展开
2015-05-27
展开全部
这样貌似内存地址错误or溢出。可以排除法下断or注释部分代码一点点缩小出错代码范围。另一方面可以在Debug下出现出错点重试断下后看i值看看是哪一行读取出现问题。是不是和数据异常有关系比方说读取列没有数据的情况。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询