在MFC下用C API连接很方便啊,没有用ADO,给你个例程:
//在用DOS创建数据库的表以后,可以在VC中用下面语句进行连接:
if (mysql_real_connect(conn, "localhost","root",NULL,"mydby",3306,NULL,0) == NULL) {
printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
exit(1);
}
注:"mydby"是自建的表,其他都选上面的,即"root'是默认用户名,null是密码,如果用其他数据则不能连接。1 在VC中 在已有的数据库中创建新表,并添加数据:
#include <my_global.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
int main(int argc, char **argv)
{
MYSQL *conn;
conn = mysql_init(NULL);
mysql_real_connect(conn, "localhost","root",NULL,"mydby",3306,NULL,0); mysql_query(conn, "CREATE TABLE writers(name VARCHAR(25))"); mysql_query(conn, "INSERT INTO writers VALUES('Leo Tolstoy')");
mysql_query(conn, "INSERT INTO writers VALUES('Jack London')");
mysql_query(conn, "INSERT INTO writers VALUES('Honore de Balzac')");
mysql_query(conn, "INSERT INTO writers VALUES('Lion Feuchtwanger')");
mysql_query(conn, "INSERT INTO writers VALUES('Emile Zola')"); mysql_close(conn);
}2 查询上面表中的数据,并显示出来:#include <my_global.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields;
int i; conn = mysql_init(NULL);
mysql_real_connect(conn, "localhost","root",NULL,"mydby",3306,NULL,0);
mysql_query(conn, "SELECT * FROM writers");
result = mysql_store_result(conn); num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
} mysql_free_result(result);
mysql_close(conn);
}注:num_fields = mysql_num_fields(result);获取 结果的列数通过下列方式来获取所有 行的所有列的数据:
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_fetch_fields() 返回一个所有字段结构的数组。

解决方案 »

  1.   

    你装没装MYSQL的ODBC驱动程序,得装这个才能用ADO连接MYSQL数据库,并且你先在本机上调,IP地址设成127.0.0.1,用MYSQL自带的库涉及到版本升级问题,一旦版本升级程序还得改,因为驱动库不会兼容低版本的
      

  2.   

    http://www.mysql.com/downloads/connector/odbc/
    在这下载个MYODBC驱动。连接字符串用这个
    Driver={MySQL ODBC 5.2 Driver};Server=192.168.1.1;Database=test;
    User=root;Password=root;Option=3;
      

  3.   

    要先配置ODBC,然后再在程序里面调用:int DBManager::LoginSystem(CString strUserID, CString strUserPs)
    {
    CStringA strParameter;
    CStringW strParameter_; CDatabase db_Login;
    db_Login.Open(_T("shapanDB"));
    CRecordset rsLogIn(&db_Login); strParameter = _T("select * from login_info where Login_Name='");
    strUserID += "'";
    strParameter += strUserID;
    strParameter += _T(" and Login_Passwd='");
    strUserPs += "'";
    strParameter += strUserPs; strParameter_ = strParameter;
    LPCTSTR lpParameter = (LPCTSTR)strParameter_;
    rsLogIn.Open(CRecordset::forwardOnly, lpParameter); if (NULL == rsLogIn.GetRecordCount())
    {
    db_Login.Close();
    return USERINFO_ERROR;
    }
    else
    {
    db_Login.Close();
    return TRUE;
    }
    }