初学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);
}
VC查询MySQL数据库获取返回结果时出问题
答案:2 悬赏:80 手机版
解决时间 2021-03-24 01:05
- 提问者网友:杀手的诗
- 2021-03-23 02:18
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-03-23 03:09
这样貌似内存地址错误or溢出。可以排除法下断or注释部分代码一点点缩小出错代码范围。另一方面可以在Debug下出现出错点重试断下后看i值看看是哪一行读取出现问题。是不是和数据异常有关系比方说读取列没有数据的情况。
全部回答
- 1楼网友:十鸦
- 2021-03-23 03:35
driver={sql server};server=主机名;database=数据库名;uid=sa;pwd=sa;
还有一个比较简单方法确定连接字符串:
1.建立一个.udl的文件。
2.双击打开,将里面相关项进行设置,保存,关闭。
3.有记事本打开这个udl文件,里面的字符串就是连接字符串!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯