MFC 读取数据库数据插入列表控件

void CUserDlg::RefreshList()
{
m_clistCtrlUser.DeleteAllItems();
db = new DBOperate;
MYSQL_RES *result;
CString strAll;
CString strSql;
CString strActStatus = _T("Y");
strSql.Format(_T("select * from user_infor where active_status = '%s'"), strActStatus);
USES_CONVERSION;
char* sql = W2A(strSql);
if (0 == mysql_query(db->m_pMySQL, sql))
{
result = mysql_store_result(db->m_pMySQL);//获取返回的结果
MYSQL_ROW line = NULL;
CString strTemp;


while (line = mysql_fetch_row(result))
{


CString strTemp = _T("");
//获取有多少行
int rowCount = m_clistCtrlUser.GetItemCount();

m_clistCtrlUser.InsertItem(rowCount, strTemp);

                      //获取列表控件有多少列

for (int i = 0; i < m_clistCtrlUser.GetHeaderCtrl()->GetItemCount(); i++)
{
std::cout << line[i] << std::endl;
if (i != 0 || i != 4)
{
//strAll.Format(_T("%s"), line[i]);
   size_t charLen = strlen(line[i]);
//计算多字节字符的大小,按字符计算。
size_t len = MultiByteToWideChar(CP_ACP, 0, line[i], charLen, NULL, 0);
//为宽字节字符数组申请空间,数组大小为按字节计算的多字节字符大小
TCHAR *buf = new TCHAR[len + 1];
//多字节编码转换成宽字节编码
MultiByteToWideChar(CP_ACP, 0, line[i], charLen, buf, len);
buf[len] = '\0'; //添加字符串结尾,注意不是len+1
//将TCHAR数组转换为CString
CString strTemp = _T("");
strTemp.Append(buf);
m_clistCtrlUser.SetItemText(rowCount, i, strTemp);
}


}
}


}


mysql_free_result(result);


}

猜你喜欢

转载自blog.csdn.net/syb198810/article/details/80726850