如果没有运行时错误,我无法从MYSQL_ROW转换为System :: String类型

时间:2013-11-25 19:52:17

标签: c++ mysql

好的,所以即时尝试将MYSQL_ROW转换为对象以格式化并将其放入标签中,但它会向我发送运行时错误代码。 这是代码:

sprintf(query, "SELECT Dinero FROM `cuentas` WHERE Username='%s'", result);
                mysql_query(conn, query);
                resultado = mysql_store_result(conn);
                if(resultado)
                {
                    unsigned int num_fields;
                    unsigned int i;
                    num_fields = mysql_num_fields(resultado);
                    columnas = mysql_fetch_row(resultado);
                    while(columnas)
                    {
                        for(i = 0; i < num_fields; i++)
                        {
                            label4->Text = String::Format(L"Dinero: {0}\n",Convert::ToString(atoi(columnas[i])));
                        }
                    }
                }
                mysql_free_result(resultado);

它编译得很好,但是当我执行它时,我得到一个运行时错误。

1 个答案:

答案 0 :(得分:0)

替换以下两行:

columnas = mysql_fetch_row(resultado);
while(columnas)

使用这一行:

while(columnas = mysql_fetch_row(result ado))

这样,您的完整代码变为:

sprintf(query, "SELECT Dinero FROM `cuentas` WHERE Username='%s'", result);
            mysql_query(conn, query);
            resultado = mysql_store_result(conn);
            if(resultado)
            {
                unsigned int num_fields;
                unsigned int i;
                num_fields = mysql_num_fields(resultado);
                while(columnas = mysql_fetch_row(resultado))
                {
                    for(i = 0; i < num_fields; i++)
                    {
                        label4->Text = String::Format(L"Dinero: {0}\n",Convert::ToString(atoi(columnas[i])));
                    }
                }
            }
            mysql_free_result(resultado);