VC的MySQL编程

合集下载

(转载)用C#实现MySQL建库及建表

(转载)用C#实现MySQL建库及建表

(转载)⽤C#实现MySQL建库及建表最近做⼀个项⽬,为了⽅便⽤户使⽤,希望可以在系统初始化的时候,⾃动实现的建库和建表操作。

在⽹上查了很多资料都没有找到合适的,偶尔在⼀个国外⽹站上看到了相关的内容,特把实现⽅法整理如下:1、⽤C#实现MySQL建库[csharp]using System.Drawing;using System.Windows.Forms;using MySql.Data.MySqlClient;namespace MySqlDemo{/// <summary>/// 实现MySQL建库/// </summary>publicclass Form1 : System.Windows.Forms.Form{void btnCreateDB(object sender, System.EventArgs e){MySqlConnection conn = new MySqlConnection("Data Source=localhost;Persist Security Info=yes;UserId=root; PWD=你的密码;");MySqlCommand cmd = new MySqlCommand("CREATE DATABASE 你的数据库名;", conn );conn.Open();cmd.ExecuteNonQuery();conn.Close();}}}2、⽤C#实现MySQL建表[csharp]publicstaticvoid AlterTableExample(){string connStr = DbWrapper.TestDbWrapper.BuildConnectionString(DbWrapperType.MySql);string createStatement = "CREATE TABLE Test (Field1 VarChar(50), Field2 Integer)";string alterStatement = "ALTER TABLE Test ADD Field3 Boolean";using (MySqlConnection conn = new MySqlConnection(connStr)){conn.Open();// 建表using (MySqlCommand cmd = new MySqlCommand(createStatement, conn)){cmd.ExecuteNonQuery();}// 改表或者增加⾏using (MySqlCommand cmd = new MySqlCommand(alterStatement, conn)){cmd.ExecuteNonQuery();}}}24.。

C++vs2019操作mysqlworkbench8.0ce

C++vs2019操作mysqlworkbench8.0ce

C++vs2019操作mysqlworkbench8.0ce1.⾸先安装好mysql workbench/vs20192.⼯程配置,32位跟64位系统配置路径是不同的3.配置好后添加测试代码#include <iostream>#include <mysql.h>using namespace std;int main(){MYSQL mysql;MYSQL_RES* res;MYSQL_ROW row;//初始化数据库mysql_init(&mysql);//设置编码⽅式//mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");//连接数据库// mysql_real_connect参数:2.本地地址 3.⽤户名 4.密码 5.数据库名字 6.端⼝号//if (mysql_real_connect(&mysql, "localhost", "root", "1234", "test", 3306, NULL, 0) == NULL) { //本地数据库if (mysql_real_connect(&mysql, "192.168.6.28", "root", "1234", "usertest1", 3306, NULL, 0) == NULL) {//远程服务器cout << (mysql_error(&mysql));return 0;}////切换数据库//if (mysql_select_db(&mysql, "usertest2"))//{// cout << (mysql_error(&mysql));// return 0;//}//查询数据if (mysql_query(&mysql, "SELECT * from new_table;"))//new_table 是表名{cout << (mysql_error(&mysql));}//获取结果集//给ROW赋值,判断ROW是否为空,不为空就打印数据。

mysqlc语言接口中文说明

mysqlc语言接口中文说明

mysqlc语言接口中文说明MySQL C API 是 MySQL 数据库的 C 语言接口,它允许开发者在 C 或C++ 程序中直接使用 MySQL 数据库。

以下是一些基本的 MySQL C API 的中文说明:1. 初始化 MySQL 连接`MYSQL mysql_init(MYSQL con)`:使用已有的连接初始化一个新的连接,或如果 con 为 NULL,则初始化一个新的连接并将其返回。

2. 连接到 MySQL 服务器`my_bool mysql_real_connect(MYSQL con, const char host, const char user, const char passwd, const char db, unsigned int port, const char unix_socket, unsigned long clientflag)`:尝试连接到 MySQL 服务器。

3. 关闭 MySQL 连接`void mysql_close(MYSQL con)`:关闭与 MySQL 服务器的连接。

4. 执行 SQL 查询`MYSQL_RES mysql_query(MYSQL con, const char q)`:对 SQL 查询进行执行。

5. 获取结果集`MYSQL_RES mysql_store_result(MYSQL con)`:获取查询结果并存储在结果集中。

`MYSQL_RES mysql_use_result(MYSQL con)`:获取查询结果并立即开始读取。

6. 获取结果集中的数据`unsigned int mysql_num_rows(MYSQL_RES res)`:返回结果集中的行数。

`char mysql_fetch_row(MYSQL_RES res)`:获取结果集中的下一行。

7. 获取字段数据`unsigned int mysql_num_fields(MYSQL_RES res)`:返回结果集中的字段数。

C#访问MySql数据库(通过MySql.Data)

C#访问MySql数据库(通过MySql.Data)

C#访问MySql数据库(通过MySql.Data)1. 添加 NuGet 包 在解决⽅案管理器视图中的⽬标项⽬上右键 -> 管理 NuGet 程序包;添加 MySql.Data 包,如下图所⽰: 2. 通过代码访问 MySQL 数据库 数据库帮助类: using MySql.Data.MySqlClient;namespace MySqlDatabaseHelper{public class MySqlDatabaseHelper{public string dbConnStr;private MySqlConnection dbConn = null;private MySqlCommand dbCmd = null;private MySqlDataReader dbDataReader = null;public MySqlDatabaseHelper(string connectionString){dbConnStr = connectionString;dbConn = new MySqlConnection(dbConnStr);dbCmd = new MySqlCommand();dbCmd.Connection = dbConn;}~MySqlDatabaseHelper(){Close();}public void Open(){dbConn.Open();}public void Close(){dbConn.Close();}public MySqlDataReader ExecuteReader(string sqlStr_Read){mandText = sqlStr_Read;dbDataReader = dbCmd.ExecuteReader();return dbDataReader;}public int ExecuteNonQuery(string sqlStr_Insert){mandText = sqlStr_Insert;int result = dbCmd.ExecuteNonQuery();return result;}}}View Code访问调⽤⽰例:using MySql.Data.MySqlClient;namespace MySqlDatabaseHelper{class Program{static void Main(string[] args){string ConnectionString = "server = 127.0.0.1; userid = root; password = 123456; database = test_db; persistsecurityinfo = True;"; MySqlDatabaseHelper db_Test = new MySqlDatabaseHelper(ConnectionString);// 打开数据库db_Test.Open();// sql 查询语句string sqlCmdStr = null;// 新增记录sqlCmdStr = "insert into chipinfo_20200209(chipid, chiptype) values('5','S10')";db_Test.ExecuteNonQuery(sqlCmdStr);// 删除记录sqlCmdStr = "delete from chipinfo_20200209 where chipid = 4";db_Test.ExecuteNonQuery(sqlCmdStr);// 修改数据sqlCmdStr = "update chipinfo_20200209 set boardid = '666' where chipid = '5'";db_Test.ExecuteNonQuery(sqlCmdStr);// 查询数据sqlCmdStr = "select * from chipinfo_20200209";MySqlDataReader dataReader = db_Test.ExecuteReader(sqlCmdStr);while (dataReader.Read()){string str = dataReader["chiptype"].ToString();}dataReader.Close();// 关闭数据库db_Test.Close();}}}View Code。

mysql5.7编译

mysql5.7编译

在MySQL 5.7中,您需要使用C++编译器进行编译。

以下是在Windows操作系统上编译MySQL 5.7的步骤:1. 准备环境:* 安装Visual Studio:您需要安装Visual Studio IDE和Visual Studio命令提示符。

* 安装MySQL Connector/C++:这是MySQL提供的C++连接器,用于与MySQL数据库进行通信。

* 安装Boost库:MySQL 5.7使用Boost库进行一些功能实现,您需要下载并安装Boost库。

2. 获取MySQL源代码:* 从MySQL官方网站下载MySQL 5.7的源代码,并将其解压缩到您选择的目录中。

3. 进入编译目录:* 在命令提示符中,使用`cd`命令进入MySQL源代码目录下的`build`子目录(例如`C:\mysql-source\mysql-5.7\build`)。

4. 配置编译选项:* 执行命令`cmake ..`,这将生成编译所需的配置文件和Makefile文件。

* 在弹出的对话框中,您可以根据需要进行配置。

例如,您可以设置生成类型(Debug或Release)、编译器选项等。

5. 执行编译:* 如果您使用的是Visual Studio IDE,可以在IDE中打开生成的解决方案文件(`.sln`文件),然后生成解决方案。

* 如果您更喜欢使用命令行进行编译,可以在命令提示符中执行以下命令:```bash`nmake````6. 完成编译:* 编译完成后,您将在MySQL源代码目录下的`lib`子目录中找到编译生成的相关文件。

这些文件包括MySQL服务程序(例如`mysqld.exe`)、客户端工具(例如`mysql.exe`)以及其他相关库文件。

7. 配置和使用:* 您可以将编译生成的MySQL服务程序和客户端工具复制到适当的位置,以便在系统中进行安装和配置。

根据您的需求,您可能还需要进行其他配置步骤,例如修改配置文件、创建数据目录等。

C连接MYSQL数据库的3种方法及示例

C连接MYSQL数据库的3种方法及示例

C连接MYSQL数据库的3种方法及示例连接MYSQL数据库有多种方法,下面介绍其中三种常用的方法。

1.使用CAPI连接MYSQL数据库CAPI是官方提供的一套用于连接和操作MYSQL数据库的函数库。

使用该API,可以在C程序中直接连接MYSQL数据库,并执行各种SQL语句。

以下是一个连接MYSQL数据库的示例:```c#include <mysql.h>int maiMYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;conn = mysql_init(NULL);if (conn == NULL)fprintf(stderr, "mysql_init failed\n");return 1;}if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL)fprintf(stderr, "mysql_real_connect failed: %s\n", mysql_error(conn));mysql_close(conn);return 1;}if (mysql_query(conn, "SELECT * FROM table"))fprintf(stderr, "mysql_query failed: %s\n",mysql_error(conn));mysql_close(conn);return 1;}res = mysql_use_result(conn);while ((row = mysql_fetch_row(res)) != NULL)printf("%s %s %s\n", row[0], row[1], row[2]);}mysql_free_result(res);mysql_close(conn);return 0;```上述代码首先初始化MYSQL对象,然后使用mysql_real_connect函数连接MYSQL数据库。

visualstudio2019连接MYSQL数据库详细教程(C#代码)

visualstudio2019连接MYSQL数据库详细教程(C#代码)

visualstudio2019连接MYSQL数据库详细教程(C#代码)⼀、⼯具:1.visual stdio20192.MySQL数据库⼆、添加动态链接:Visual Studio中选择项⽬->管理NuGet程序包(N) 然后在浏览⾥⾯搜索MySql.Data并进⾏安装。

三、实现过程:1.创建⼀个类来放数据库的连接和各种操作,我这⾥创建的是SQLManage2.加⼊需要的头⽂件using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;3.连接数据库,并返回⼀个MySqlConnection对象public MySqlConnection getConn(){string connetStr = "server=127.0.0.1;port=3306;user=root;password=root;database=hos_managesystem;Charset=utf8;";MySqlConnection conn = new MySqlConnection(connetStr);return conn;}其中server是数据库所在⽹络的IP地址,127.0.0.1代表本地,port是数据库设置的端⼝号,user⽤户名,password密码,database是要连接的数据库名,Charset=utf8主要是处理中⽂编码问题4.查询操作MySqlConnection conn = getConn(); //连接数据库conn.Open(); //打开数据库连接string sql = "select * from user'" ;MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader mdr = cmd.ExecuteReader();if (mdr.Read()){string str = mdr["authority"].ToString();//接收⼀个返回值//对查询到数据进⾏相应的操作}conn.Close();5.增删改操作类似,只是sql语句不相同,这⾥以插⼊操作为例MySqlConnection conn = getConn(); //连接数据库conn.Open(); //打开数据库连接string sql = "insert into user values('123','123')";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.ExecuteNonQuery();conn.Close();说明:在进⾏对数据库具体操作时建议在SQLManage类中直接写不同的函数来实现,在Form代码处创建SQLManage对象来引⽤对应的⽅法,这样可以使代码更加简洁,同时也⽅便维护。

串口编程中使用MScommd的注意事项

串口编程中使用MScommd的注意事项

串口编程中使用MScommd的注意事项串口编程中使用MScommd的注意事项微机能否通过端口检测到电平信号?悬赏分:20 - 解决时间:2006-10-16 11:39我做一个控制系统,需要微机检测到外部发出的信号(比如一个高电初次接触mysql:c++ 连接mysqlC语言链接MySQL, (实例一)用的是mysql自带的LIB包。

#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql.h>MYSQL* my_conn(){MYSQL *mysql;/*初始化指针*/mysql = mysql_init(NULL);/*连接数据库*/if(!(mysql = mysql_real_connect(mysql, "localhost", "root", "root", "test", 0, NULL, 0))){printf("error!!%s\n", mysql_error(mysql));exit(1);}printf("连接数据库成功!!\n");return mysql;}/*执行sql语句并返回*/MYSQL_RES* execute_query(MYSQL* mysql, char *sql){MYSQL_RES *res = NULL;printf("sql:%s\n", sql);/*执行SQL语句*/if(mysql_query(mysql,sql)) {fprintf(stderr,"Query failed (%s)\n",mysql_error(mysql));exit(1);}/*返回结果集*/if (!(res=mysql_store_result(mysql))) {fprintf(stderr,"Couldn't get result from %s\n", mysql_error(mysql));exit(1);}/*结果列数*/printf("number of fields returned: %d\n",mysql_num_fields(res));return res;}int main(){MYSQL *mysql;MYSQL_RES *res;MYSQL_ROW row;char *qbuf;mysql = my_conn();qbuf = "select * from test";/* printf("main sql:%s\n", qbuf);*/ res = execute_query(mysql, qbuf);while(row = mysql_fetch_row(res)) {printf("id=%s\t", row[0]);printf("name=%s\t", row[1]);printf("remark=%s\n", row[3]);}puts("query ok!!\n");mysql_free_result(res);mysql_close(mysql);return 1;}C语言链接MYSQL数据库(实例二1#include <mysql.h>/*注意要包含这个头文件*/2#include <string.h>3#include <stdlib.h>4#include <stdio.h>56/*定义了一些数据库连接需要的宏*/7#define HOST "localhost"8#define USERNAME "ABitNo"9#define PASSWORD "ABitNo"10#define DATABASE "abitno"1112/*这个函数用来执行传入的sql語句*/13void exe_sql(char* sql) {1415 MYSQL my_connection; /*这是一个数据库连接*/16int res; /*执行sql語句后的返回标志*/1718/*初始化mysql连接my_connection*/19 mysql_init(&my_connection);2021/*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并22返回一个值,返回不为空证明连接是成功的*/23if (mysql_real_connect(&my_connection, HOST, USERNA ME, PASSWORD, DATABASE,24 0, NULL, CLIENT_FOUND_ROWS)) {/*连接成功*/2526 printf("数据库执行exe_sql连接成功!\n");2728/*这句话是设置查询编码为utf8,这样支持中文*/29 mysql_query(&my_connection, "set names utf8");3031/*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句,32这会返回一个int值,如果为0,证明語句执行成功*/33 res = mysql_query(&my_connection, sql);3435if (res) {/*现在就代表执行失败了*/36 printf("Error: mysql_query !\n");37/*不要忘了关闭连接*/38 mysql_close(&my_connection);39 } else {/*现在就代表执行成功了*/40/*mysql_affected_rows会返回执行sql后影响的行数*/41 printf("%d 行受到影响!\n\n", mysql_affected_rows(&my_connection));42/*不要忘了关闭连接*/43 mysql_close(&my_connection);44 }4546 } else {47/*数据库连接失败*/48 printf("数据库执行exe_sql连接失败!\n");49 }50}5152/*这个函数用来执行传入的sql語句,并打印出查询結果*/53void query_sql(char* sql) {54 MYSQL my_connection; /*这是一个数据库连接*/55int res; /*执行sql語句后的返回标志*/56 MYSQL_RES *res_ptr; /*指向查询结果的指针*/57 MYSQL_FIELD *field; /*字段结构指针*/58 MYSQL_ROW result_row; /*按行返回的查询信息*/5960int row, column; /*查询返回的行数和列数*/61int i, j; /*只是控制循环的两个变量*/6263/*初始化mysql连接my_connection*/64 mysql_init(&my_connection);6566/*这里就是用了mysql.h里的一个函数,用我们之前定义的那些宏建立mysql连接,并67返回一个值,返回不为空证明连接是成功的*/68if (mysql_real_connect(&my_connection, HOST, USERNA ME, PASSWORD, DATABASE,69 0, NULL, CLIENT_FOUND_ROWS)) {/*Connection suc cess*/7071 printf("数据库查询query_sql连接成功!\n");7273/*这句话是设置查询编码为utf8,这样支持中文*/74 mysql_query(&my_connection, "set names utf8");7576/*下面这句话就是用mysql_query函数来执行我们刚刚传入的sql語句,77这会返回一个int值,如果为0,证明語句执行成功*/78 res = mysql_query(&my_connection, sql);7980if (res) { /*现在就代表执行失败了*/81 printf("Error: mysql_query !\n");82/*不要忘了关闭连接*/83 mysql_close(&my_connection);84 } else { /*现在就代表执行成功了*/85/*将查询的結果给res_ptr*/86 res_ptr = mysql_store_result(&my_connection);8788/*如果结果不为空,就把结果print*/89if (res_ptr) {90/*取得結果的行数和*/91 column = mysql_num_fields(res_ptr);92 row = mysql_num_rows(res_ptr) + 1;93 printf("查询到 %lu 行 \n", row);9495/*输出結果的字段名*/96for (i = 0; field = mysql_fetch_field(res_ptr); i++)97 printf("%s\t", field->name);98 printf("\n");100/*按行输出結果*/101for (i = 1; i < row; i++) {102 result_row = mysql_fetch_row(res_ptr); 103for (j = 0; j < column; j++)104 printf("%s\t", result_row[j]);105 printf("\n");106 }107108 }109110/*不要忘了关闭连接*/111 mysql_close(&my_connection);112 }113 }114}115116int main(int argc, char *argv[]) {117/*测试下向里面插入数据*/118char *exe = "insert into abitno values('ABitNo','');"; 119 exe_sql(exe);120121/*测试下查询*/122char *query = "select * from abitno;";123 query_sql(query);124125return 0;C语言链接MYSQL数据库(实例三)对于刚刚接触MySQL的用户,如果想用C语言连接MySQL,往往会是一件很麻烦的事情。

c语言mysql编程

c语言mysql编程

C语言mysql编程先给出一个简单的代码:可以实现最简单的数据库连接:#include<mysql.h>#include<stdio.h>#include<string.h>static void output_error(MYSQL * mysql);int main(){MYSQL mysql ;// 代码1const char *host="localhost";const char *user="root";const char *password="zjh171";const char *database="renshi";const int port=3306;const char *socket=NULL;const int flag = 0;mysql_init(&mysql);// 代码2mysql_real_connect(&mysql,host,user,password,database,port,socket,flag) return 0;}代码1:先看看MYSQL 是什么:typedef struct st_mysql{NET net; /* Communication parameters */unsigned char *connector_fd; /* ConnectorFd for SSL */char *host,*user,*passwd,*unix_socket,*server_version,*host_info; char *info, *db;struct charset_info_st *charset;MYSQL_FIELD *fields;MEM_ROOT field_alloc;my_ulonglong affected_rows;my_ulonglong insert_id; /* id if insert on table with NEXTNR */my_ulonglong extra_info; /* Not used */unsigned long thread_id; /* Id for connection in server */unsigned long packet_length;unsigned int p ort;unsigned long client_flag,server_capabilities;unsigned int p rotocol_version;unsigned int f ield_count;unsigned int server_status;unsigned int server_language;unsigned int w arning_count;struct st_mysql_options options;enum mysql_status status;my_bool free_me; /* If free in mysql_close */my_bool reconnect; /* set to 1 if automatic reconnect *//* session-wide random string */char scramble[SCRAMBLE_LENGTH+1];/*Set if this is the original connection, not a master or a slave we haveadded though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave()*/my_bool rpl_pivot;/*Pointers to the master, and the next slave connections, points toitself if lone connection.*/struct st_mysql* master, *next_slave;struct st_mysql* last_used_slave; /* needed for round-robin slave pick *//* needed for send/read/store/use result to work correctly with replication */ struct st_mysql* last_used_con;LIST *stmts; /* list of all statements */const struct st_mysql_methods *methods;void *thd;/*Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag from mysql_stmt_close if close had to cancel result set of this object.*/my_bool *unbuffered_fetch_owner;/* needed for embedded server - no net buffer to store the 'info' */char *info_buffer;void *extension;} MYSQL;显然是一个结构体;如果没有代码2,就会报错:原型:MYSQL * STDCALL mysql_init(MYSQL *mysql);加上测试信息:#include<mysql.h>#include<stdio.h>#include<string.h>static void output_error(MYSQL * mysql);int main(){MYSQL mysql ;const char *host="localhost";const char *user="root";const char *password="zjh171";//密码错,就会报错1045const char *database="renshi";//数据库找不到就会报错1049const int port=3306;//写错,连接不到数据库,报错2003const char *socket=NULL;const int flag = 0;if(!mysql_init(&mysql) ){output_error(&mysql);}if(!mysql_real_connect(&mysql,host,user,password,database,port,socket,flag)) {output_error(&mysql);}return 0;}static void output_error(MYSQL * mysql){fprintf(stderr, "errorno: %d \n", mysql_errno(mysql) );fprintf(stderr, "error info: %s\n", mysql_error(mysql) );exit(1);}。

C连接MYSQL数据库的3种方法及示例

C连接MYSQL数据库的3种方法及示例

C# 连接MYSQL数据库的方法及示例连接MYSQL数据库的方法及示例方法一:using MySql.Datausing MySql.Data.MySqlClient;其他操作跟SQL是差不多,无非就是前缀变成MySql了.补充:下面是连接字符串,供参考.MySqlConnection con = newMySql.Data.MySqlClient.MySqlConnection("Database='testdb';DataSource='localhost';User Id='db';Password='apple';charset='utf8'");con.Open();MySqlCommand cmd = new MySqlCommand();cmd.Connection = con;使用MYSQL推出的MySQL Connector/Net is an driver for MySQL该组件为MYSQL为访问MYSQL数据库设计的.NET访问组件。

安装完成该组件后,引用命名空间MySql.Data.MySqlClient;使用命令行编译时:csc /r:MySql.Data.dll test.cs方法二:通过ODBC访问MYSQL数据库访问前要先下载两个组件:和MYSQL的ODBC驱动(MySQL Connector/ODBC (MyODBC) driver)目前为3.51版安装完成后,即可通过ODBC访问MYSQL数据库方法三:使用CoreLab推出的MYSQL访问组件,面向.NET安装完成后,引用命名空间:CoreLab.MySql;使用命令编译时:csc /r:CoreLab.MySql.dll test.cs以下为访问MYSQL数据库实例编译指令:csc /r:CoreLab.MySql.dll /r:MySql.Data.dll test.csusing System;using ;using System.Text;using CoreLab.MySql;using System.Data.Odbc;using MySql.Data.MySqlClient;class ConnectMySql{public void Connect_CoreLab(){string constr = "User Id=root;Host=localhost;Database=qing;password=qing"; MySqlConnection mycn = new MySqlConnection(constr);mycn.Open();MySqlCommand mycm = new MySqlCommand("select * from shop",mycn); MySqlDataReader msdr = mycm.ExecuteReader();while(msdr.Read()){if (msdr.HasRows){Console.WriteLine(msdr.GetString(0));}}msdr.Close();mycn.Close();}public void Connect_Odbc(){//string MyConString ="DSN=MySQL;UID=root;PWD=qing";string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +"SERVER=localhost;" +"DATABASE=test;" +"UID=root;" +"PASSWORD=qing;" +"OPTION=3";OdbcConnection MyConn = new OdbcConnection(MyConString);MyConn.Open();OdbcCommand mycm = new OdbcCommand("select * from hello",MyConn); OdbcDataReader msdr = mycm.ExecuteReader();while(msdr.Read()){if (msdr.HasRows){Console.WriteLine(msdr.GetString(0));}}msdr.Close();MyConn.Close();}public void Connect_Net(){string myConnectionString = "Database=test;Data Source=localhost;User Id=root;Password=qing";MySqlConnection mycn = new MySqlConnection(myConnectionString); mycn.Open();MySqlCommand mycm = new MySqlCommand("select * from hello",mycn); MySqlDataReader msdr = mycm.ExecuteReader();while(msdr.Read()){if (msdr.HasRows){Console.WriteLine(msdr.GetString(0));}}msdr.Close();mycn.Close();}public static void Main(){ConnectMySql ms = new ConnectMySql();ms.Connect_CoreLab();ms.Connect_Odbc();Connect_Net();}}1、用MySQLDriverCS连接MySQL数据库先下载和安装MySQLDriverCS,地址:/projects/mysqldrivercs/在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中注:我下载的是版本是MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exeusing System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Data.Odbc;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using MySQLDriverCS;namespace mysql{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){MySQLConnection conn = null;conn = new MySQLConnection(new MySQLConnectionString("localhost", "inv", "root", "831025").AsString);conn.Open();MySQLCommand commn = new MySQLCommand("set names gb2312", conn);commn.ExecuteNonQuery();string sql = "select * from exchange ";MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);DataSet ds = new DataSet();mda.Fill(ds, "table1");this.dataGrid1.DataSource = ds.Tables["table1"];conn.Close();}}}2、通过ODBC访问mysql数据库:参考:/china/community/Column/63.mspx1. 安装Microsoft :我安装的是mysql-connector-odbc-3.51.22-win32.msi2. 安装MDAC 2.7或者更高版本:我安装的是mdac_typ.exe 2.7简体中文版3. 安装MySQL的ODBC驱动程序:我安装的是odbc_net.msi4. 管理工具-> 数据源ODBC –>配置DSN…5. 解决方案管理中添加引用Microsoft.Data.Odbc.dll(1.0.3300)6. 代码中增加引用using Microsoft.Data.Odbc;using System;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Linq; //vs2005好像没有这个命名空间,在c#2008下测试自动生成的using System.Text;using System.Windows.Forms;using Microsoft.Data.Odbc;namespace mysql{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +"SERVER=localhost;" +"DATABASE=inv;" +"UID=root;" +"PASSWORD=831025;" +"OPTION=3";OdbcConnection MyConnection = new OdbcConnection(MyConString);MyConnection.Open();Console.WriteLine("\n success, connected successfully !\n");string query = "insert into test values( ''hello'', ''lucas'', ''liu'')";OdbcCommand cmd = new OdbcCommand(query, MyConnection);//处理异常:插入重复记录有异常try{cmd.ExecuteNonQuery();}catch(Exception ex){Console.WriteLine("record duplicate.");}finally{cmd.Dispose();}//***********************用read方法读数据到textbox********************** string tmp1 = null;string tmp2 = null;string tmp3 = null;query = "select * from test ";OdbcCommand cmd2 = new OdbcCommand(query, MyConnection);OdbcDataReader reader = cmd2.ExecuteReader();while (reader.Read()){tmp1 = reader[0].ToString();tmp2 = reader[1].ToString();tmp3 = reader[2].ToString();}this.textBox1.Text = tmp1 + " " + tmp2 + " " + tmp3;*///************************用datagridview控件显示数据表************************** string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +"SERVER=localhost;" +"DATABASE=inv;" +"UID=root;" +"PASSWORD=831025;" +"OPTION=3";OdbcConnection MyConnection = new OdbcConnection(MyConString); OdbcDataAdapter oda = new OdbcDataAdapter("select * from customer ", MyConnection); DataSet ds = new DataSet();oda.Fill(ds, "employee");this.dataGridView1.DataSource = ds.Tables["employee"];*/MyConnection.Close();}}}文章出处:/course/4_webprogram//asp_netshl/2008429/112011.html 1、用MySQLDriverCS连接MySQL数据库先下载和安装MySQLDriverCS,地址:/projects/mysqldrivercs/在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中注:我下载的是版本是MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exeusing System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Data.Odbc;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using MySQLDriverCS;namespace mysql{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){MySQLConnection conn = null;conn = new MySQLConnection(new MySQLConnectionString("localhost", "inv", "root", "831025").AsString);conn.Open();MySQLCommand commn = new MySQLCommand("set names gb2312", conn);commn.ExecuteNonQuery();string sql = "select * from exchange ";MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);DataSet ds = new DataSet();mda.Fill(ds, "table1");this.dataGrid1.DataSource = ds.Tables["table1"];conn.Close();}}}2、通过ODBC访问mysql数据库:参考:/china/community/Column/63.mspx1. 安装Microsoft :我安装的是mysql-connector-odbc-3.51.22-win32.msi2. 安装MDAC 2.7或者更高版本:我安装的是mdac_typ.exe 2.7简体中文版3. 安装MySQL的ODBC驱动程序:我安装的是odbc_net.msi4. 管理工具-> 数据源ODBC –>配置DSN…5. 解决方案管理中添加引用Microsoft.Data.Odbc.dll(1.0.3300)6. 代码中增加引用using Microsoft.Data.Odbc;using System;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Linq; //vs2005好像没有这个命名空间,在c#2008下测试自动生成的using System.Text;using System.Windows.Forms;using Microsoft.Data.Odbc;namespace mysql{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +"SERVER=localhost;" +"DATABASE=inv;" +"UID=root;" +"PASSWORD=831025;" +"OPTION=3";OdbcConnection MyConnection = new OdbcConnection(MyConString);MyConnection.Open();Console.WriteLine("\n success, connected successfully !\n");string query = "insert into test values( ''hello'', ''lucas'', ''liu'')";OdbcCommand cmd = new OdbcCommand(query, MyConnection);//处理异常:插入重复记录有异常try{cmd.ExecuteNonQuery();}catch(Exception ex){Console.WriteLine("record duplicate.");}finally{cmd.Dispose();}//***********************用read方法读数据到textbox**********************string tmp1 = null;string tmp2 = null;string tmp3 = null;query = "select * from test ";OdbcCommand cmd2 = new OdbcCommand(query, MyConnection);OdbcDataReader reader = cmd2.ExecuteReader();while (reader.Read()){tmp1 = reader[0].ToString();tmp2 = reader[1].ToString();tmp3 = reader[2].ToString();}this.textBox1.Text = tmp1 + " " + tmp2 + " " + tmp3;*///************************用datagridview控件显示数据表************************** string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +"SERVER=localhost;" +"DATABASE=inv;" +"UID=root;" +"PASSWORD=831025;" +"OPTION=3";OdbcConnection MyConnection = new OdbcConnection(MyConString); OdbcDataAdapter oda = new OdbcDataAdapter("select * from customer ", MyConnection); DataSet ds = new DataSet();oda.Fill(ds, "employee");this.dataGridView1.DataSource = ds.Tables["employee"];*/MyConnection.Close();}}}文章出处:/course/4_webprogram//asp_netshl/2008429/112011.html1.连接:1.安装Microsoft 。

C语言操作MYSQL

C语言操作MYSQL

C语言操作MYSQLC语言是一种通用的编程语言,可以与各种数据库系统进行交互。

在这篇文章中,我们将介绍如何使用C语言进行MySQL数据库的操作,并提供一些示例代码。

1.包含头文件为了使用MySQL C Connector库的函数,我们需要在代码中包含相应的头文件。

头文件通常命名为mysql.h。

#include <mysql.h>2.连接到MySQL服务器在使用MySQL数据库之前,我们需要建立与MySQL服务器的连接。

为了连接到MySQL服务器,我们需要提供服务器主机名、用户名、密码等信息。

以下是连接到MySQL服务器的示例代码。

MYSQL *conn; // MySQL连接句柄conn = mysql_init(NULL); // 初始化连接mysql_real_connect(conn, "localhost", "root", "password", "database", 0, NULL, 0); // 连接到MySQL服务器在上面的示例中,我们使用了mysql_init函数来初始化连接,然后使用mysql_real_connect函数来实际连接到MySQL服务器。

参数说明如下:- conn:用于存储连接句柄的指针。

- "localhost":MySQL服务器的主机名。

如果MySQL服务器在同一台机器上,可以使用"localhost"。

如果MySQL服务器在另一台机器上,则需要提供相应的主机名。

- "root":MySQL服务器的用户名。

- "password":MySQL服务器的密码。

- "database":要连接的数据库名称。

如果连接到默认数据库,可以将其设置为NULL。

-其他参数:用于指定连接的其他选项,如端口号等。

cc++批量向mysql插入数据

cc++批量向mysql插入数据

cc++批量向mysql插⼊数据先给个MYSQL对于C的API具体代码,改为⼿动提交,每次5W数据//mysql所需的头⽂件和库⽂件#include "winsock.h"#include <Windows.h>#include <stdio.h>#include <stdlib.h>#include "mysql.h"#include<fstream>#include <string>#include <iostream>using namespace std;int main(){//配置⽂件ifstream configFin("config.txt");string processFile;//要处理的⽂件名字string dbhost;//数据库主机string dbuser;//数据库⽤户名string dbpwd;//数据库密码string dbname;//数据库名字string tmp;configFin>>tmp>>processFile>>tmp>>dbhost>>tmp>>dbuser>>tmp>>dbpwd>>tmp>>dbname;unsigned int port = 3306; //server portMYSQL myCont;mysql_init(&myCont);string uid, friendid;ifstream fin(processFile.c_str());int i=0;int eachCount = 0;string sql;while(!fin.eof()){if(mysql_real_connect(&myCont,dbhost.c_str(),dbuser.c_str(),dbpwd.c_str(),dbname.c_str(),port,NULL,CLIENT_MULTI_STATEMENTS)) {mysql_autocommit(&myCont,0);mysql_query(&myCont, "SET NAMES utf8");for(eachCount=0; eachCount<50000; ++eachCount){if(fin>>uid>>friendid){sql = "insert into friendlist values('"+uid+"','"+friendid+"');";mysql_query(&myCont, sql.c_str());}}cout<<". ";mysql_commit(&myCont);mysql_close(&myCont);//断开连接}else{cout<<"connect failed!"<<endl;}}fin.close();system("pause");system("pause");return0;}⼤致说⼀下C链接MYSQL的⽅法:1、去官⽅下载mysql和c的connector2、拷贝⾥⾯的lib⽬录下的dll和lib⽂件到当前⽬录下3、设置当前项⽬的头⽂件位下载的⽬录下的inlcude4、设置⼀个lib库(在项⽬设置⾥),设置第2步的⽂件名5、⽤上述程序就可以连接(数据库地址之类的,⾃⼰改掉)----------------------------------------insert插⼊多条数据有⼆种⽅法⼀种是写多条insert 语句⽤";"号分割每条sql,⼀种是insert本⾝的多个value 1,写多条insert⽤";"分割这个很简单,;号是mysql执⾏sql的结束符,写多个insert⽤;号割就是让mysql执⾏多次⽽已.⽐如:insert into table (field1,field2,field3) value ('a',"b","c");insert into table (field1,field2,field3) value ('a',"b","c");insert into table (field1,field2,field3) value ('a',"b","c");insert into table (field1,field2,field3) value ('a',"b","c");insert into table (field1,field2,field3) value ('a',"b","c");2,在insert中写多个valueINSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");。

【mySQL】C++操作mySql数据库(Mysqlconnectorc++)

【mySQL】C++操作mySql数据库(Mysqlconnectorc++)

【mySQL】C++操作mySql数据库(Mysqlconnectorc++)⽬录前⾔⼀、依赖:MySQL Connector/C++需要安装配置boost库⼆、简介应⽤程序要想访问数据库,必须使⽤数据库提供的编程接⼝。

⽬前业界⼴泛被使⽤的API标准有ODBC和JDBC。

ODBC是由微软提出的访问关系型数据库的C程序接⼝。

JDBC(Java Data Base Connectivity,java数据库连接)是⼀种⽤于执⾏SQL语句的Java API,可以为多种关系数据库提供统⼀访问,它由⼀组⽤Java语⾔编写的类和接⼝组成。

MySQL实现了三种Connector⽤于C/C++ 客户端程序来访问MySQL服务器:Connector/ODBC, Connector/C++(JDBC)以及Connector/C(libmysqlclient)。

MySQL C++ Driver的实现基于JDBC规范MySQL Connector/C++是由Sun Microsystems开发的MySQL连接器。

它提供了基于OO的编程接⼝与数据库驱动来操作MySQL服务器。

与许多其他现存的C++接⼝实现不同,Connector/C++遵循了JDBC规范。

也就是说,Connector/C++ Driver的API主要是基于Java语⾔的JDBC接⼝。

JDBC是java语⾔与各种数据库连接的标准⼯业接⼝。

Connector/C++实现了⼤部分JDBC规范。

如果C++程序的开发者很熟悉JDBC编程,将很快的⼊门。

Connector C++ 使⽤3.4 静态库和动态库:接着根据我们的需要,执⾏后续步骤:如果⽤静态库,可能⽐较⿇烦,因为静态库需要和编译器版本相匹配,因此需要⼿动编译⼀份,所以此次选择动态库。

动态库:创建项⽬和配置1、新建⼀个空项⽬2、将D:\Program Files\MySQL\Connector C++ 1.1.3\include添加到项⽬的包含⽬录中(根据具体路径⽽定)3、将D:\boost\boost_1_55_0添加到项⽬的包含⽬录中(根据具体路径⽽定)4、将D:\Program Files\MySQL\Connector C++ 1.1.3\lib\opt添加到项⽬的库⽬录中(根据具体路径⽽定)5、添加mysqlcppconn.lib⾄附加依赖项中6、如果使⽤的mysql是64位的,还需要将项⽬的解决⽅案平台由win32改成x647、将D:\Program Files\MySQL\Connector C++ 1.1.3\lib\opt(根据具体路径⽽定)下的mysqlcppconn.dll复制到项⽬中去,和.cpp,.h⽂件位于同⼀路径下将D:\Program Files\MySQL\MySQL Server 5.6\lib(根据具体路径⽽定)下的libmysql.dll复制到项⽬中去,和.cpp,.h⽂件位于同⼀路径下⾄此,相关配置全部完成代码编写6、程序引⼊头⽂件#include "jdbc/mysql_connection.h"#include "jdbc/mysql_driver.h"#include "jdbc/cppconn/statement.h"7、连接数据库//初始化驱动sql::mysql::MySQL_Driver *driver = NULL;sql::Connection *con = NULL;driver = sql::mysql::get_mysql_driver_instance();if (driver == NULL){cout << "driver is null" << endl;}con = driver->connect("tcp://localhost:3306", "root", "root");if (con == NULL){cout << "conn is null" << endl;}cout << "connect suceess" << endl;8、程序使⽤mysql版本为mysql-5.6.24-win32,完整的代码如下:#include "iostream"#include "jdbc/mysql_connection.h"#include "jdbc/mysql_driver.h"#include "jdbc/cppconn/statement.h"#include "jdbc/cppconn/prepared_statement.h"using namespace std;using namespace sql;int main(){//初始化驱动sql::mysql::MySQL_Driver *driver = NULL;sql::Connection *conn = NULL;driver = sql::mysql::get_mysql_driver_instance();if (driver == NULL){cout << "driver is null" << endl;}//连接//con = driver->connect("tcp://localhost:3306", "root", "root");conn = driver->connect("tcp://localhost:3306/ourcms", "root", "root");if (conn == NULL){cout << "conn is null" << endl;}cout << "connect suceess" << endl;//查询int flag = 0;sql::Statement *stmt = conn->createStatement();sql::ResultSet *res;res = stmt->executeQuery("SELECT * FROM cms_device");while (res->next()){cout << res->getInt("id") << endl;cout << res->getString("phone").c_str() << endl;cout << res->getString("imsi").c_str() << endl;}//插⼊conn->setAutoCommit(0);//关闭⾃动提交PreparedStatement *prep_stmt;int updatecount = 0;res->first();flag = 0;while (res->next()){if (strcmp(res->getString("imsi").c_str(), "460010010000100") == 0){flag = 1;break;}}if (flag == 0) {prep_stmt = conn->prepareStatement("INSERT INTO cms_device (id,phone,imsi) VALUES (111,?,?)"); prep_stmt->setString(1, "150********");prep_stmt->setString(2, "460010010000100");updatecount = prep_stmt->executeUpdate();}Savepoint *savept;savept = conn->setSavepoint("SAVEPT1");res->first();flag = 0;while (res->next()){if (strcmp(res->getString("imsi").c_str(), "460010010000101") == 0){flag = 1;break;}}if (flag == 0) {prep_stmt = conn->prepareStatement("INSERT INTO cms_device (phone,imsi) VALUES (?,?)");prep_stmt->setString(1, "150********");prep_stmt->setString(2, "460010010000101");updatecount = prep_stmt->executeUpdate();}conn->rollback(savept);conn->releaseSavepoint(savept);conn->commit();//更新conn->setAutoCommit(1);//打开⾃动提交prep_stmt = conn->prepareStatement("update cms_device set phone=? where phone=?");prep_stmt->setString(1, "150********");prep_stmt->setString(2, "150********");updatecount = prep_stmt->executeUpdate();}程序代码main.cpp#include <iostream>#include <map>#include <string>#include <memory>#include "mysql_driver.h"#include "mysql_connection.h"#include "cppconn/driver.h"#include "cppconn/statement.h"#include "cppconn/prepared_statement.h"#include "cppconn/metadata.h"#include "cppconn/exception.h"using namespace std;using namespace sql;int main(){sql::mysql::MySQL_Driver *driver = 0;sql::Connection *conn = 0;try{driver = sql::mysql::get_mysql_driver_instance();conn = driver->connect("tcp://localhost:3306/booktik", "root", "123456");cout << "连接成功" << endl;}catch (...){cout << "连接失败" << endl;}sql::Statement* stat = conn->createStatement();stat->execute("set names 'gbk'");ResultSet *res;res = stat->executeQuery("SELECT * FROM BOOK");while (res->next()){cout << "BOOKNAME:" << res->getString("bookname") << endl;cout << " SIZE:" << res->getString("size") << endl;}if (conn != 0){delete conn;}system("pause");}运⾏结果使⽤中会遇到的问题1.返回的结果中⽂乱码问题:安装好了boost库和Mysql connector c++ 1.1.3库后,我们配置好⼯程的属性,就能使⽤通过sql::Connection::createStatement(),⽅法创建的sql::Statement*对象,对数据库进⾏操作,但是如果你数据库中的编码是utf8或者其他⽀持中⽂的编码,那么你必需要在执⾏sql查询语句之前,执⾏这么⼀句代码:m_sqlStatement->execute("set names 'gbk'");这⾥的m_sqlStatement是⼀个sql::Statement*对象。

MFC,C++,C程序与MySql数据库连接,库函数

MFC,C++,C程序与MySql数据库连接,库函数

C++程序与MySql数据库连接——陈绍钦csq 有很多种技术可以让C++程序利用数据库:ODBC、DB、DAO、ADO、API等,ODBC是传统的方法功能强大,ADO比较便捷,并逐渐代替了DAO。

对于mysql数据库来说,其提供的API函数和PHP中mysqli函数相差不大,毕竟mysql是用c语言写的,可以说懂得了PHP和mysql的结合,就懂得了c++与mysql的结合。

以下是C++程序里利用mysql数据库的简略说明。

一、MySQL的安装可以考虑安装mysql-5.0.41-win32(可到/soft/3573.htm处下载),当然你有更新的版本更好,注意选择“完全安装”(只有这样才会安装VC编译时需要的头文件等)。

安装后期会进行服务器配置,你可以设置你的服务器登陆密码,也可以不设置密码。

二、VC6.0的设置(1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。

(我的是D:/Program Files/MySQL/MySQL Server 5.0/include)。

(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib 目录路径。

Lib目录下还有debug和opt两个目录,建议选debug。

(我的是D:/Program Files/MySQL/MySQL Server 5.0/lib/debug)。

(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。

(4)在stdafx.h里面添加如下的内容:#include "winsock.h"#include "mysql.h"#pragmacomment(lib,"libmySQL.lib")(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。

实习3-JavaBeanMySQL学生成绩管理系统。实习4--VCMySQL学生成绩管理系统

实习3-JavaBeanMySQL学生成绩管理系统。实习4--VCMySQL学生成绩管理系统

实习3 JavaBean/MySQL学生成绩管理系统本章以学生绩管理系统为例介绍Javabean的综合应用。

本系统实现学生信息的查询、录入、修改和删除,以及学生成绩的录入、修改等,包括了Jvabean的基本功能。

希望读者通过这个综合实例,了解用Javabean解决实际问题的基本方法。

综合应用实例的基本思路是:首先进入系统登录,登录成功进入学生成绩管理系统主页面。

主页面上提供系统的主要功能,单击某一功能,即进入该功能的页面。

P3。

1 构建系统准备P3。

1.1 数据库准备系统使用的数据库管理系统为Mysql5。

0,学生成绩数据库名为XSCJ.其中涉及4个表:学生信息表(XS),存放学生的基本信息;课程信息表(KC),存放课程的基本信息;学生课程成绩表(XSKC),存放学生课程的成绩信息;系统登录表(xscjuser),存放用户登录信息。

具体结构和样本数据参考附录A。

生成数据库表的sql语句如下:create database XSCJ;use XSCJ;drop table if exists KC; //删除已经存在的表drop table if exists XS;drop table if exists XSKC;drop table if exists xscjuser;create table KC //创建课程表(kch char (3)not null, //课程号kcm char (16),//课程名xq int(1), //学期xs int(1), //学时xf int(1),//学分primary key (kch)//主键“课程号”);create table XS //创建学生表(xh char(6) not null,//学号xm char(8), //姓名xb int, //性别cssj date,//出生日期zy char(10), //专业zxf int, //总学分bz text, //备注image longblob,//照片primary key (xh),//主键“学号");create table XSKC //创建成绩表(xh char(6)not null,//学号kch char(3), //课程号cj int(1), //成绩xf int(1), //学分primary key (xh)//主键“学号”);create table xscjuser //创建登录表(xh char(10)not null, //学号kl char(10),//口令primary key (xh)//主键“学号”);在命令行中输入以上sql语句,可以创建数据库XSCJ及4个表,也可以使用图形化用户界面工具MySQL Query Browser,把上面的SQL语句保存在D:\xscj.sql文件夹下,打开Query Browser工具,引入上面的SQL语句。

VC连接MySQL

VC连接MySQL

《VC连接MySQL》Ps:在项目中要用到MySQL,移植代码的时候报错如下,搜索找到此文章,特此收藏。

老是粗心大意,就是忘记设置导入libmysql.lib当然也不必看完下面全文,可能的情况还有,没有设置对头文件 or 根本没包含这,#include <winsock.h>#include <mysql.h>这两个的位置应该如此,反正没发现反过来能编译通过的。

问题(1)出现以下DEBUG信息时:TestNewSql.obj : error LNK2001: unresolved external symbol _mysql_close@4 TestNewSql.obj : error LNK2001: unresolved external symbol _mysql_select_db@8 TestNewSql.obj : error LNK2001: unresolved external symbol_mysql_real_connect@32TestNewSql.obj : error LNK2001: unresolved external symbol _mysql_init@4解决方法:在VC工程中project—>setting—>link—>object/library modules中添加:libmysql.lib,然后编译就可以通过了(2)如果是在其他文件中引用的,在tools —>options —>directories—>show directories for :include files对应的项目中包含这些头文件。

(3)编译通过后,在运行时弹出对话框找不到libmysql.dll文件,在所安装的mysql目录下的lib\debug目录下可以找到该文件。

将其复制到编译好的release/debug目录下即可。

mysql的c语言函数

mysql的c语言函数

mysql的c语言函数MySQL是一种流行的关系型数据库管理系统,可以使用C程序来访问并处理MySQL数据库。

在C程序中,可以使用一个称为mysqlclient的MySQL C函数库来实现与MySQL数据库的通信。

MySQL C函数库公开了一组C API,可用于执行各种MySQL数据库操作,例如连接与断开连接,执行SQL查询,事务处理,以及数据的插入、修改、删除等操作。

MySQL C函数库常见函数如下:1. 连接与断开连接函数mysql_init和mysql_real_connect函数可用于连接到MySQL数据库服务器并开始一个新的连接。

mysql_close 函数用于停止与服务器连接。

mysql_init函数在C程序中启动MySQL库,用于初始化指向MySQL的主句柄。

具有以下语法:MYSQL *mysql_init(MYSQL *mysql)mysql_real_connect函数由C程序使用,在应用程序和MySQL服务之间建立一个新连接。

具有以下语法:MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int flags);其中,参数host 指定MySQL服务器的主机名或IP地址,user 和 passwd是访问MySQL服务器所使用的用户名和密码,这些参数都是必需的。

参数db是MySQL数据库的名称,port参数是MySQL服务协议使用的TCP端口号。

如果指定unix_socket参数,MySQL 驱动程序将连接到UNIX域套接字而不是TCP / IP套接字。

flags参数用于控制与服务器建立的连接选项。

2. 执行SQL查询函数mysql_query函数可用于执行SQL查询(例如SELECT语句),并将结果集返回给C程序。

mysql数据编程题

mysql数据编程题

mysql数据编程题当涉及到MySQL数据编程题时,通常涉及到数据库查询、数据操作和存储过程等方面的知识。

以下是一些可能的MySQL数据编程题目和相应的解答:1. 查询题目:a. 查询表中的所有数据。

解答,SELECT FROM table_name;b. 查询表中满足特定条件的数据。

解答,SELECT FROM table_name WHERE condition;c. 查询表中的数据并按特定字段排序。

解答,SELECT FROM table_name ORDER BYcolumn_name;2. 数据操作题目:a. 插入数据到表中。

解答,INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);b. 更新表中的数据。

解答,UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;c. 删除表中的数据。

解答,DELETE FROM table_name WHERE condition;3. 存储过程题目:a. 创建一个简单的存储过程。

解答,CREATE PROCEDURE procedure_name.AS.BEGIN.-存储过程的逻辑。

END;b. 调用存储过程并传递参数。

解答,CALL procedure_name(parameter1, parameter2, ...);以上是一些可能涉及到的MySQL数据编程题目及相应的解答。

当然,实际的问题可能会更加复杂,涉及到更多的SQL语法和数据库操作技巧。

希望这些解答能够帮助你更好地理解和应对MySQL数据编程题目。

c#连接mysql实用工具类

c#连接mysql实用工具类

c#连接mysql实⽤⼯具类今天学习了c#连接MySQL,和我想得⼀样,与Java的基本⼀致。

由于之前⼀直⽤Java与MySQL配合使⽤,所以,我将c#与Java的⼀些相同点做出如下⽐较:Java中有***********************Class.forName("com.mysql.cj.jdbc.Driver");//加载JDBC驱动在c#中没有Java中有**********************public static String db_url = "jdbc:mysql://localhost:3306/jiuye?characterEcoding=utf-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true";public static String db_user = "root";public static String db_pass = "123456";Connection conn = null;conn = DriverManager.getConnection(db_url, db_user, db_pass);在c#中有对应类似的代码********************** "server=127.0.0.1;port=3306;database=zxw;user=root;password=123456";这⾥可以设置⽤户名,密码,数据库名称等总⽽⾔之,c#连接mysql的过程就是:1.string connectStr = "server=127.0.0.1;port=3306;database=zxw;user=root;password=123456";MySqlConnection conn = new MySqlConnection(connectStr);2. MySqlConnection conn = new MySqlConnection(connectStr);//MySqlConnection与Java中的Connection类似*********************************************************3. conn.Open();//开启数据库4.MySqlCommand cmd = new MySqlCommand(sql, conn);//*************这⾥的MySqlCommand与Java中的Connection类似,但是⽤法不同⽬前我认为的思路就是这样,如果以后有了新的认识,回头再改!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "stdafx.h"
#include <stdio.h>
#include <winsock.h>
#include <mysql.h>
#include <windows.h>
#pragma comment(lib, "libmysql.lib")
int main(int argc, char* argv[])
if(!ssock)
{
printf("conn fail... ");
//memcpy(eee, mysql_error(ssock), 20);
//fprintf(stderr, "Failed to connect to database: Error: %s ", mysql_error(ssock));
VC的MySQL编程2008-12-21 13:29一、在你的程序中使用数据库是不错的注意。如果已经有可用的MySQL服务器,在VC中可以按照如下方法实现与数据库的连接。
1、找来MySQL(Win32)安装目录下的include文件夹,将其添加到VC头文件目录列表中;
(VC6 -> Options -> Directories -> 加入此目录)
return TRUE;
}
二、怎样用c/c++编程连接mysql数据库
执行一个查询有以下几个步骤要做。首先执行一个查询,然后保存结果,
得到的是一个子集。这里是一个小例子:
#include <stdio.h>
#include
#include <mysql.h>
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
void exiterr(int exitcode)
{
fprintf( stderr, "%s\n", mysql_error(&mysql) );
mysql_close(&mysql);
}
mysql_query 函数将把查询送给服务器,如果查询成功,调用mysql_store_result 函数将分配一个MYSQL_RES 结构并且重新从服务器获得一个结果集。
你可以用mysql_fetch_row 函数来查看数据。这样做你将获得一个 MYSQL_ROW 指针指向数据中的一行。 MYSQL_ROW 指针是一简单的字符串数组。所有的数据类型被转换成字符串送到客户端。
//printf("%c ", eee);
unsigned int mtint = mysql_errno(ssock);
//printf("%d ");
return FALSE;
}
if(mysql_select_db(ssock, DBName) != 0)
如果你执行一个UPDATE, INSERT 或者 DELETE 查询,你可以用int mysql_affected_rows 来查出共有多少行数据被你影响到。
如果在你的数据库里有二进制数据,那么得知数据的长度将是有用的。unsigned int *mysql_fetch_lengths(MYSQL_RES *mysql) 将返回一指出了结果集中每一列 的长度的整型数组。
{
printf("select db error. ");
return FALSE;
}
printf("version=%d ", mysql_get_server_version(ssock));
//exec my execsql string
return false;
} Biblioteka else{ std::cout<<"connect database success"<<std::endl;
}
char szSqlText[500]="";
int j = 0;
sprintf(szSqlText,"%s","select * from data_receive ");
exiterr(1);
if (mysql_select_db(&mysql,"payroll"))
exiterr(2);
if (mysql_query(&mysql,"SELECT name,rate FROM emp_master"))
mysql_init(ssock);
if(ssock == NULL)
{
printf("EROR: MySQL ssock init error. ");
return FALSE;
}
//连接到指定的数据库
ssock = mysql_real_connect(ssock, IPAddress, UserName, Password, NULL, Port, NULL, 0);
//sprintf(execsql,"create table girls (name char(10),age int)");
//mysql_real_query(ssock,execsql,strlen(execsql));
mysql_close(ssock);
printf("End... ");
if (mysql_query( &mysql, szSqlText))
//进行数据检索
{
//执行SQL语句出错
cout<<"query error"<<endl;
mysql_close( &mysql ) ;
return FALSE ;
}
else
{
unsigned short Port = 3306;
char *IPAddress = "192.168.31.56";
char *UserName = "root";
char *Password = "";
char *DBName = "SAS_1_2_0";
MYSQL_RES * res ;
MYSQL_FIELD * fd ;
MYSQL_ROW row ;
int id[10000];
double result[10000][8];
vector<string> v;
if(mysql_init(&mysql) == NULL)
}
if(NULL == mysql_real_connect(&mysql,"localhost","root","","wsnss",MYSQL_PORT,NULL,0))
{
std::cout<<"connect database fail"<<std::endl<<mysql_error(&mysql)<<std::endl;;
当你插入一个带有 AUTO_INCREMENT 列的表的时候,你可以用int mysql_insert_id(MYSQL *mysql) 来查出生成的那一行的ID。
======================
int main()
{
MYSQL mysql;
{
std::cout<<"init mysql data status fail"<<std::endl;
return false;
}
else
{
std::cout<<"init mysql data status success"<<std::endl;
exiterr(3);
if (!(res = mysql_store_result(&mysql)))
exiterr(4);
while((row = mysql_fetch_row(res))) {
mysql_num_fields函数将告诉你返回的列数。你可以继续调用mysql_fetch_row直到它返回一个空指针以得到查询中的每一行。
注意在这个例子里,我们没有检查有空指针的列。如果你不使用非空列的表,那么你必须检查一个特殊行的列是否为空。一旦你使用完毕一个结果集,你必须释放它。这通过 mysql_free_result 来完成。
{
res = mysql_store_result( &mysql ) ;
for (i=0 ; i < mysql_num_fields(res); i++)
printf("%s\n",row[i]);
}
mysql_free_result(res);
(VC2005 -> 工具 -> 选择 ->项目和解决方案 -> VC++目录 -> 显示以下內容的目录 -> 包含文件 -> 加入此目录)2、找来MySQL(Win32)安装目录下的lib文件夹,将 其添加到VC库文件目录列表中;
相关文档
最新文档