在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() 返回一个所有字段结构的数组。
//在用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() 返回一个所有字段结构的数组。
在这下载个MYODBC驱动。连接字符串用这个
Driver={MySQL ODBC 5.2 Driver};Server=192.168.1.1;Database=test;
User=root;Password=root;Option=3;
{
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;
}
}