C连接MYSQL数据库的3种方法及示例
VS2019的C++项目连接MySQL的操作以及常见问题
VS2019的C++项⽬连接MySQL的操作以及常见问题连接数据库操作1,将数据库安装好并配置好环境。
2,在项⽬属性页将⾃⼰的平台设置为与数据库对应的平台,然后在“项⽬–>属性->C/C++–>常规–>附加包含⽬录”中添加MySql Server的include⽬录。
3,在“项⽬–>属性->链接器–>常规->附加库⽬录”中添加MySql Server的lib⽬录。
4,在“项⽬–>属性->链接器–>输⼊->附加依赖项“中添加libmysql.lib。
5,测试代码如下1 #include <iostream>2 #include<mysql.h>3 #include<windows.h>45using namespace std;6 MYSQL* conn;7int main()8 {9const char* user = "root";10const char* password = "123456";11 conn = mysql_init(NULL);12if (mysql_real_connect(conn, "127.0.0.1", user, password, NULL, 0, NULL, 0) == NULL)13 cout << "数据库连接失败" << endl;14else15 cout << "数据库连接成功" << endl;16return0;1718 }6,若出现正常运⾏,则证明配置成功,如下图所⽰。
常见问题及解决⽅法1,问题>MyProject3.obj : error LNK2019: ⽆法解析的外部符号 _mysql_init@4,函数 _main 中引⽤了该符号>MyProject3.obj : error LNK2019: ⽆法解析的外部符号 _mysql_real_connect@32,函数 _main 中引⽤了该符号>E:\MySQL\mysql-8.0.26-winx64\lib\libmysql.lib : warning LNK4272: 库计算机类型“x64”与⽬标计算机类型“x86”冲突>D:\ProgramData\source\repos\MySolution\Debug\MyProject3.exe : fatal error LNK1120: 2 个⽆法解析的外部命令解决办法:这是因为数据库为X86架构的64位扩展(x86_64),其本质为64位,⽽我们的调试的平台使⽤的为X86(32位),这就造成了不兼容的问题,当我们在项⽬属性页设置的时候就应该将调试的平台改为位数据库对应的平台。
VC6.0连接MySQL大数据库
电力学院嵌入式系统应用安全课程论文题目: VC6.0连接MySQL数据库姓名:学号: 201132班级: 2011班院系:计算机科学与技术学院专业年级:信息安全2011级2014年6月8日通过VC开发MySQL数据库应用软件有多种方式:一、通过MyODBC界面二、通过Connector/C++l界面三、通过MySQL C API界面四、第三方封装的MySQL类在经过反复比较,我还是选择了MySQL C API方式来进行MySQL的开发。
在VC中使用MySQL的步骤如下:一、MYSQL的准备工作1.下载MySQL的服务器/客户端安装包我的开发环境是Windows,所以我下载的是MySQL for Windows mysql-5.6.19-win322.安装MySQL服务器/客户端包Cmd下进入mysql-5.6.19-win32 安装目录,我的安装目录是D:\mysql-5.6.19-win32\bin界面输入安装语句 sqld-unstall。
成功安装MYSQL3.运行MYSQL ,建立测试数据库及表启动MYSQL语句创建数据库语句创建表语句创建表中数据4.查看建立的表格二、VC设置准备打开vc++6.0,TOOLS->OPTIONS->DIRECTORIES,在其Include files添加MySQL 的include路径。
切换下拉框,选择Library files,添加MySQL的lib路径。
PROJECTS -->SETINGS-->LINK 在OBJECT/LIBARY MODULES 添加 libmysql.lib将MYSQL安装目录中的几个文件复制到VC工程文件夹中MySQL数据库安装之后在\MySQL \lib\opt目录下libmysql.liblibmysql.dll同时需要\MySQL\include目录下的几个文件:mysql_version.hmy_list.hmysql_.hmysql_time.hmysql.hmy_alloc.htypelib.h在VC的安装目录Microsoft Visual Studio\VC98\Lib下找到:WS2_32.LIB三、VC编程,建立工程WIN32 CONSOLE APPLICATION 代码#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql.h>#include <iostream>#pragma comment(lib,"libmysql.lib")//连接MysQL需要的库using namespace std;int main(){const char user[] = "root"; //usernameconst char pswd[] = ""; //passwordconst char host[] = "127.0.0.1"; //or"127.0.0.1"const char table[] ="testdb"; //databaseunsigned int port = 3306; //server portMYSQL myCont;MYSQL_RES *result;MYSQL_ROW sql_row;MYSQL_FIELD *fd;char column[32][32];int res;mysql_init(&myCont);if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0)){cout<<"connect succeed!"<<endl;mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文 res=mysql_query(&myCont,"select * from name_table");//查询if(!res){result=mysql_store_result(&myCont);//保存查询到的数据到resultif(result){int i,j;cout<<"number of result: "<<(unsigned long)mysql_num_rows(result)<<endl;for(i=0;fd=mysql_fetch_field(result);i++)//获取列名{strcpy(column[i],fd->name);}j=mysql_num_fields(result);for(i=0;i<j;i++){printf("%s\t",column[i]);}printf("\n");while(sql_row=mysql_fetch_row(result))//获取具体的数据{for(i=0;i<j;i++){printf("%s\n",sql_row[i]);}printf("\n");}}}else{cout<<"query sql failed!"<<endl;}}else{cout<<"connect failed!"<<endl;}if(result!=NULL) mysql_free_result(result);//释放结果资源mysql_close(&myCont);//断开连接return 0;}结果四、心得通过网络资料自学使用MY SQL连接vc的方法。
连接mysql的方法
连接mysql的方法连接MySQL的方法主要有以下几种:1. 使用MySQL命令行工具连接:在命令行中输入`mysql -u 用户名-p`,然后输入密码即可连接到MySQL服务器。
2. 使用MySQL提供的图形化界面工具连接:MySQL提供了一些图形化界面工具,如MySQL Workbench、phpMyAdmin等,可以通过它们来连接MySQL 服务器。
3. 使用编程语言的MySQL驱动连接:各种编程语言都提供了与MySQL交互的驱动程序,可以通过编写代码来连接MySQL服务器。
例如,在Java中可以使用JDBC驱动,Python中可以使用PyMySQL、mysql-connector-python 等驱动。
下面是一个使用Python的PyMySQL模块连接MySQL的例子:import pymysql# 连接数据库conn = pymysql.connect(host='localhost', user='root',password='123456', database='test')# 创建游标对象cursor = conn.cursor()# 执行SQL语句sql = "SELECT * FROM user"cursor.execute(sql)# 获取结果result = cursor.fetchall()for row in result:print(row)# 关闭游标和连接cursor.close()conn.close()这是一个简单的连接和执行SQL语句的例子,具体的连接参数和SQL语句根据实际情况进行调整。
C++连接mysql数据库的两种方法小结
C++连接mysql数据库的两种⽅法⼩结现在正做⼀个接⼝,通过不同的连接字符串操作不同的数据库。
要⽤到mysql数据库,以前没⽤过这个数据库,⽤access和sql server⽐较多。
通过⽹上的⼀些资料和⾃⼰的摸索,⼤致清楚了C++连接mysql的⽅法。
可以通过2种⽅法实现。
第⼀种⽅法是利⽤ADO连接,第⼆种⽅法是利⽤mysql⾃⼰的api函数进⾏连接。
第⼀种⽅法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。
暂时只连接了mysql,sqlserver,oracle,access。
对于access,因为它创建表的SQL 语句不太兼容标准SQL语句,需要做⼀些处理,这⾥暂时不说。
第⼆种⽅法只能针对于mysql数据库的连接,不过⽤这种⽅法不⽤安装MyODBC服务器程序。
不管⽤哪种⽅法,⾸先需要安装Mysql数据库,安装⽅法请看“mysql安装及⼀些注意点”。
最好安装⼀个Navicat for mysql,⽅便操作mysql数据库。
下⾯分别说下这两种⽅法:(⼀)通过ADO连接MySql数据库1、通过ADO连接MySql数据库,⾸先得安装MyODBC服务器程序。
MyODBC版本要和MySql的版本对应上,否则会连接不上数据库。
我⽤的版本分别是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。
安装好后,点击开始菜单->设置->控制⾯板->管理⼯具->数据源(ODBC)->⽤户DSN->添加->选择MySQL ODBC 5.1 Driver。
如下图:然后双击MySQL ODBC 5.1 Driver进⾏配置。
配置好可以点Test进⾏下测试(如下图),如果能连上会弹出connection successful对话框。
上图中的Data Source Name:中的内容就是代码⾥DSN所对应的值。
windows下c++连接mysql
C++连接mysql 数据库环境:windows xp VC++6.0 mysql目的:实现建表,插入,检索,删表等常用功能。
VC6.0 的配置:菜单栏—》工具—》选项—》目录—》添加:C:\Program Files\MySQL\MySQL Server 6.0\includeC:\Program Files\MySQL\MySQL Server 6.0\lib\opt拷贝C:\Program Files\MySQL\MySQL Server 6.0\lib\opt下的libmysql.lib到C:\Program Files\Microsoft Visual Studio\VC98\Lib下写aa.cpp【注:一层层执行可以看到更好的效果】#include <winsock.h>#include <iostream>#include <string>#include <mysql.h>using namespace std;#pragma comment(lib, "ws2_32.lib")#pragma comment(lib, "libmysql.lib")//单步执行,不想单步执行就注释掉#define STEPBYSTEPint main(){cout<<"****************************************"<<endl;#ifdef STEPBYSTEPsystem("pause");#endif//必备的一个数据结构MYSQL mydata;//初始化数据库if(0==mysql_library_init(0,NULL,NULL)){cout<<"mysql_library_init() succeed"<<endl;}else{cout<<"mysql_library_init() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//初始化数据结构if(NULL!=mysql_init(&mydata)){cout<<"mysql_init() succeed"<<endl;}else{cout<<"mysql_init() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//在连接数据库之前,设置额外的连接选项//可以设置的选项很多,这里设置字符集,否则无法处理中文if(0==mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk")) {cout<<"mysql_options() succeed"<<endl;}else{cout<<"mysql_options() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//连接数据库if(NULL!=mysql_real_connect(&mydata,"localhost","root","test","test",3306,NULL ,0))//这里的地址,用户名,密码,端口可以根据自己本地的情况更改{cout<<"mysql_real_connect() succeed"<<endl;}else{cout<<"mysql_real_connect() failed"<<endl;return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//sql字符串string sqlstr;//创建一个表sqlstr ="CREATE TABLE IF NOT EXISTS user_info";sqlstr+="(";sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The SummationOf Using Time'";sqlstr+=");";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() create table succeed"<<endl;}else{cout<<"mysql_query() create table failed"<<endl;mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//向表中插入数据sqlstr ="INSERT INTO user_info(user_name) VALUES('公司名称'),('一级部门'),('二级部门'),('开发小组'),('姓名');";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() insert data succeed"<<endl;}else{cout<<"mysql_query() insert data failed"<<endl;mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//显示刚才插入的数据sqlstr="SELECT user_id,user_name,user_second_sum FROM user_info"; MYSQL_RES *result=NULL;if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() select data succeed"<<endl;//一次性取得数据集result=mysql_store_result(&mydata);//取得并打印行数int rowcount=mysql_num_rows(result);cout<<"row count: "<<rowcount<<endl;//取得并打印各字段的名称unsigned int fieldcount=mysql_num_fields(result);MYSQL_FIELD *field=NULL;for(unsigned int i=0;i<fieldcount;i++){field=mysql_fetch_field_direct(result,i);cout<<field->name<<"\t\t";}cout<<endl;//打印各行MYSQL_ROW row=NULL;row=mysql_fetch_row(result);while(NULL!=row){for(int i=0; i<fieldcount;i++){cout<<row[i]<<"\t\t";}cout<<endl;row=mysql_fetch_row(result);}}else{cout<<"mysql_query() select data failed"<<endl; mysql_close(&mydata);return -1;}#ifdef STEPBYSTEPsystem("pause");#endif//删除刚才建的表sqlstr="DROP TABLE user_info";if(0==mysql_query(&mydata,sqlstr.c_str())){cout<<"mysql_query() drop table succeed"<<endl; }else{cout<<"mysql_query() drop table failed"<<endl; mysql_close(&mydata) ;return -1;}mysql_free_result(result);mysql_close(&mydata);mysql_server_end();system("pause");return 0;}vc++添加c++文件:添加后:运行:没有错误的话会在debug下生成可执行文件:运行aa.exe:查看数据库:没用C连接之前:C连接mysql修改后:DONE!!1。
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数据库。
MYSQL的几种连接方法
MYSQL的几种连接方法MySQL是一种常用的关系型数据库管理系统,提供了多种连接方法来访问和操作数据库。
下面将详细介绍MySQL的几种连接方法:1.TCP连接:MySQL的默认连接方式是基于TCP/IP的连接。
当使用TCP连接时,客户端通过指定主机名或IP地址和端口号来连接到MySQL 服务器。
这种连接方式是最常见和最常用的方式,也是最安全和可靠的方式。
2. 命名管道连接:MySQL也支持通过命名管道(Named Pipe)来进行连接。
命名管道是一种在操作系统中用于进程间通信的机制,可以在客户端和服务器之间建立一个虚拟的传输通道。
在使用命名管道连接时,客户端和服务器需要在操作系统上创建一个相同的命名管道进行通信。
3. UNIX域套接字连接:UNIX域套接字(UNIX Domain Socket)是在UNIX或Linux系统上进行本地进程间通信的一种机制。
MySQL支持通过UNIX域套接字连接到服务器,这种连接方式是基于文件系统的,比TCP 连接更快速和高效。
4. SSH隧道连接:SSH隧道(SSH Tunnel)是一种通过安全外壳协议(SSH)在不安全网络上建立加密连接的方法。
用户可以通过SSH隧道连接到MySQL服务器,以增加安全性并防止网络攻击。
在使用SSH隧道连接时,用户需要在本地计算机上运行SSH客户端,并将SSH连接端口重定向到MySQL服务器的端口。
5. SSL连接:MySQL支持使用SSL(Secure Sockets Layer)协议进行安全连接。
当使用SSL连接时,数据在客户端和服务器之间通过加密传输,可以防止数据被窃听或篡改。
要启用SSL连接,需要在MySQL服务器上配置SSL证书和密钥,并在客户端上配置SSL选项。
除了以上几种连接方法,MySQL还提供了一些其他的连接选项和功能,如连接池、连接复用和持久连接等。
连接池可以提高连接的重用性和效率,连接复用可以减少连接的创建和关闭开销,而持久连接可以在客户端和服务器之间保持一个持久的连接状态,以避免频繁的连接和断开操作。
C#窗体连接MySql并通过DataGridView展示数据
C#窗体连接MySql并通过DataGridView展⽰数据第⼀步,添加MySql.Data⼯具,⾸先,C#连接MySql数据库需要⽤到C#连接MySql数据库所⽤到的动态链接库--MySql.Data,如果没有这个⽂件⾸先我们需要将他添加进项⽬中,1.右键项⽬名,点击管理NuGet程序包:2.在浏览页⾯的搜索栏输⼊MySql.Data,如果没有安装右侧会有安装⼀栏选项,我们就可以点击右侧的安装选项进⾏安装,安装成功后我们就可以进⾏编码操作了:第⼆步,编码实现,然后,我们就可以进⼊编码阶段了,⾸先我们需要加⼊头⽂件:using MySql.Data.MySqlClient;这样我们就可以使⽤MySql.Data中的⽅法来连接数据库了,连接数据库代码如下:String connetStr = "server=127.0.0.1;port=3306;user=root;password=123; database=vs;";//usr:⽤户名,password:数据库密码,database:数据库名MySqlConnection conn = new MySqlConnection(connetStr);try{conn.Open();//打开通道,建⽴连接,可能出现异常,使⽤try catch语句Console.WriteLine("已经建⽴连接");}catch (MySqlException ex){Console.WriteLine(ex.Message);}finally{conn.Close();}如果连接数据库成功,我们就可以进⾏下⾯的操作了,取出数据并通过DataGridView展⽰出来了,代码如下:String connetStr = "server=127.0.0.1;port=3306;user=root;password=123; database=vs;";MySqlConnection conn = new MySqlConnection(connetStr);try{conn.Open();//打开通道,建⽴连接,可能出现异常,使⽤try catch语句Console.WriteLine("已经建⽴连接");string sql = "select * from salecar";MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader reader = cmd.ExecuteReader();//执⾏ExecuteReader()返回⼀个MySqlDataReader对象while (reader.Read()){int index = this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = reader.GetString("name");this.dataGridView1.Rows[index].Cells[1].Value = reader.GetString("describe");this.dataGridView1.Rows[index].Cells[2].Value = reader.GetString("price");this.dataGridView1.Rows[index].Cells[3].Value = reader.GetInt32("salenumber");}}catch (MySqlException ex){Console.WriteLine(ex.Message);}finally{conn.Close();}这样我们就完成了C#窗体连接MySql并通过DataGridView展⽰数据,下⾯是效果图和全部代码:全部代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using MySql.Data.MySqlClient;namespace WindowsFormsApp1{public partial class Form3 : Form{public Form3(){InitializeComponent();a();}private void button1_Click(object sender, EventArgs e){Form1 fm1 = new Form1();this.Hide();fm1.ShowDialog();Application.ExitThread();}private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){}public void a(){String connetStr = "server=127.0.0.1;port=3306;user=root;password=123; database=vs;";MySqlConnection conn = new MySqlConnection(connetStr);try{conn.Open();//打开通道,建⽴连接,可能出现异常,使⽤try catch语句Console.WriteLine("已经建⽴连接");//在这⾥使⽤代码对数据库进⾏增删查改string sql = "select * from salecar";MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader reader = cmd.ExecuteReader();//执⾏ExecuteReader()返回⼀个MySqlDataReader对象while (reader.Read()){int index = this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = reader.GetString("name");this.dataGridView1.Rows[index].Cells[1].Value = reader.GetString("describe");this.dataGridView1.Rows[index].Cells[2].Value = reader.GetString("price");this.dataGridView1.Rows[index].Cells[3].Value = reader.GetInt32("salenumber");}}catch (MySqlException ex){Console.WriteLine(ex.Message);}finally{conn.Close();}}}}效果:数据库表:。
【C#】使用MySql.Data.dll连接MySQL数据库
【C#】使⽤MySql.Data.dll连接MySQL数据库准备⼯作在Visual Studio中新建⼀个C#的控制台应⽤程序。
确保后台已经启⽤了MySQL57服务。
在MySQL的安装路径下找到DLL,默认位置是 C:\Program Files (x86)\MySQL\ 6.9\Assemblies\v4.5\MySql.Data.dll 。
更多写代码连接MySQL的⽅法(通过MySQLConnector连接器),参考⽂档 C:\Program Files (x86)\MySQL\ 6.9\Documentation\ConnectorNET.chm 。
在⽂档的Users Guide-Programming中有代码案例。
把MySql.Data.dll引⼊项⽬中。
v4.5表⽰.NetFramework框架的版本号,⼀定要保证使⽤的DLL与项⽬的.NetFramework版本⼀致,否则运⾏时报错找不到DLL,报错如下:1>F:\Learning\CSharpConnectMySQL\CSharpConnectMySQL\Program.cs(1,7,1,12): error CS0246: The type or namespace name 'MySql' could not be found (are you missing a using directive or an assembly reference?)测试增删改查using MySql.Data.MySqlClient;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharpConnectMySQL{class Program{static void Main(string[] args){// 服务器地址;端⼝号;数据库;⽤户名;密码string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root"; // ⽤户名和密码在MySQL定义的// 创建连接MySqlConnection conn = new MySqlConnection(connectStr);try{// 打开连接conn.Open();Console.WriteLine("已经建⽴连接");//Query(conn); // 测试查询//Insert(conn); // 测试插⼊//Update(conn); // 测试更新//Delete(conn);// 测试删除}catch (Exception e){Console.WriteLine(e.ToString());}finally{// 关闭连接conn.Close();Console.WriteLine("数据库已关闭");}Console.ReadKey();}///<summary>///查询///</summary>///<param name="conn"></param>private static void Query(MySqlConnection conn){// 创建命令string sql = "select * from users";MySqlCommand cmd = new MySqlCommand(sql, conn);// 读取数据MySqlDataReader reader = cmd.ExecuteReader();while (reader.Read()) // true表⽰能读取该⾏数据{ // ⽅式⼀:访问数组 Console.WriteLine(reader[0].ToString() + reader[1].ToString()); // reader[0]是读出来的第⼀列属性// ⽅式⼆:根据列数 Console.WriteLine(reader.GetInt32(0));// ⽅式三:根据列名 Console.WriteLine(reader.GetInt32("user_id"));}}///<summary>///插⼊,增加数据///</summary>///<param name="conn"></param>private static void Insert(MySqlConnection conn){// 创建命令string sql = "insert into user(user_name, user_pwd) values('asdAa','2345')";MySqlCommand cmd = new MySqlCommand(sql, conn);// 添加⼀条记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}///<summary>///更新,改数据///</summary>///<param name="conn"></param>private static void Update(MySqlConnection conn){// 创建命令string sql = "update user set user_name = 'newName', user_pwd = '66777' where user_id = '3'";MySqlCommand cmd = new MySqlCommand(sql, conn);// 更新记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}///<summary>///删除数据///</summary>///<param name="conn"></param>private static void Delete(MySqlConnection conn){// 创建命令string sql = "delete from user where user_id = '4'";MySqlCommand cmd = new MySqlCommand(sql, conn);// 删除记录int result = cmd.ExecuteNonQuery();Console.WriteLine("数据库中受影响的⾏数 = " + result);}}}传参拼接SQL语句///<summary>///验证⽤户名和密码///</summary>///<param name="conn"></param>///<param name="userName"></param>///<param name="password"></param>///<returns></returns>private static bool Verify(MySqlConnection conn, string userName, string password){// ⽅式⼀:组拼sql//string sql = "select * from user where user_name = '" + userName + "' and user_pwd = '" + password + "'"; //MySqlCommand cmd = new MySqlCommand(sql, conn);// ⽅式⼆:参数标记string sql = "select * from user where user_name = @p1 and user_pwd = @p2";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.Parameters.AddWithValue("p1", userName); // 这⾥会根据输⼊的类型,⾃动判断要不要加单引号''cmd.Parameters.AddWithValue("p2", password);MySqlDataReader reader = cmd.ExecuteReader();if (reader.Read()) // 要么查出⼀条数据,要么0条。
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对象来引⽤对应的⽅法,这样可以使代码更加简洁,同时也⽅便维护。
C语言数据库操作
C语言数据库操作C语言是一种通用的编程语言,也可以用于数据库操作。
在C语言中,我们可以使用一些库来连接和操作数据库,比如SQLite和MySQL。
本文将介绍如何在C语言中进行数据库操作,包括连接数据库、创建表、插入和查询数据等。
1.连接数据库:要在C语言中连接数据库,我们需要引入相应的库。
例如,使用SQLite库的代码如下:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n",sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们首先通过调用`sqlite3_open`函数打开一个名为`test.db`的数据库。
如果打开成功,函数将返回`SQLITE_OK`。
否则,我们可以通过`sqlite3_errmsg`函数获取错误信息。
2.创建表:在连接数据库后,我们可以在其中创建表。
下面的代码演示了如何在SQLite数据库中创建表:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;char *sql;char *errmsg = 0;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sql = "CREATE TABLE COMPANY(""IDINTPRIMARYKEYNOTNULL,""NAMETEXTNOTNULL,""AGEINTNOTNULL,""ADDRESSCHAR(50),""SALARYREAL);";rc = sqlite3_exec(db, sql, 0, 0, &errmsg);if (rc != SQLITE_OK)fprintf(stderr, "SQL error: %s\n", errmsg);sqlite3_free(errmsg);} elsefprintf(stdout, "Table created successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们使用`sql`字符串来定义一个创建表的SQL语句。
【C++】VS2015VS2017连接Mysql数据库教程
【C++】VS2015VS2017连接Mysql数据库教程要给C++程序连接MySQL数据库,分别需要:安装MySQL Server下载MySQL Connector/C++在IDE中配置依赖然后就可以在代码中调⽤API,来连接以及操作数据库。
⼀、安装MySQL Server这是MySQL 数据库服务,下载了它才能在⾃⼰的电脑中使⽤MySQL。
下载页⾯:参考教程:安装好后,我们打开MySQL 5.7 Command Line Client(在开始菜单的快捷⽅式⾥,也可以搜索⼀下),然后创建数据库mysql> create database test;使⽤数据库(这句不能加分号)mysql> use test查看已有的表mysql> show tables;创建表mysql> create table testuser ( id INT, name CHAR(20));⼆、下载MySQL Connector/C++这是连接MySQL的库,我们在C++中需要使⽤该库来连接数据库。
下载页⾯:三、IDE中配置依赖,以Visual Studio 2015为例为了在我们的C++⼯程⾥⽅便地引⽤ Connector/C++库,就要配置⼀下项⽬的依赖。
Windows10系统下编写C++⼯程我⼀般⽤VS,其他的IDE可以参考官⽅⽂档,如Linux中⽤NetBeans:,以下内容也是参考的。
3.1 选择编译⽅式配置依赖前,先将默认的Debug模式改为Release模式。
如果修改了编译⽅式,配置⾃然就改变了。
3.2 添加额外的Include⽬录在VS菜单中选择项⽬属性 =>C/C++=> 输⼊ => 附加包含⽬录点击,然后选择NewLine(黄⾊按钮),点“...”按钮选择MySQL Connector的路径,例如我的是C:\Program Files\MySQL\MySQL Connector C++1.1.8\include这⼀步是为了让我们的C++程序可以引⽤连接sql相关的头⽂件。
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。
-其他参数:用于指定连接的其他选项,如端口号等。
数据库连接c 的方法
数据库连接c 的方法数据库连接是指建立数据库连接并进行数据交互的过程,可以使用不同的方法来连接数据库。
在C语言中,也有多种方法可以连接数据库,常见的方法包括使用ODBC、JDBC和数据库提供的API等。
一、ODBC连接数据库:ODBC(Open DataBase Connectivity)是一种数据库连接标准,通过ODBC 可以连接不同数据库,包括MySQL、SQL Server等。
在C语言中,我们可以使用ODBC API来连接数据库。
具体步骤如下:1. 包含头文件:odbcinst.h、sql.h、sqlext.h、sqltypes.h;2. 定义ODBC环境、连接句柄和状态变量;3. 调用函数SQLAllocHandle来分配环境和连接句柄;4. 设置连接属性,如数据库驱动、连接字符串等;5. 调用函数SQLConnect来连接数据库;6. 进行数据操作,如查询、插入、更新等;7. 关闭连接,释放资源。
二、JDBC连接数据库:JDBC(Java Database Connectivity)是一种Java编程语言访问数据库的API,通过JDBC可以连接不同数据库。
在C语言中,我们可以使用JNI(Java Native Interface)来调用Java中的JDBC API。
具体步骤如下:1. 定义JVM(Java虚拟机)实例句柄、对象句柄和方法句柄;2. 加载并初始化JVM;3. 调用函数GetDefaultJVMInitArgs来获取JVM初始化参数;4. 调用函数InitializeJVM来初始化JVM;5. 创建Java虚拟机实例,并获取环境对象;6. 调用函数RegisterNatives来注册本地方法;7. 调用Java中的JDBC API来连接数据库;8. 进行数据操作,如查询、插入、更新等;9. 断开数据库连接,释放资源。
三、数据库提供的API连接数据库:各种数据库都提供了自己的API,通过调用数据库提供的API来连接数据库。
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 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*对象。
C++中的数据库连接和SQL操作指南
C++中的数据库连接和SQL操作指南数据库连接和SQL操作在C++中是非常重要的,它们可以帮助我们在应用程序中实现数据的存储、访问和操作。
本文将从数据库连接和SQL操作的基本概念开始,然后逐步介绍如何在C++中进行数据库连接和SQL操作,最后讨论一些常见的最佳实践和注意事项。
1.数据库连接的基本概念在C++中进行数据库连接,首先需要了解一些基本的概念。
数据库连接是指应用程序与数据库系统之间建立的通信连接,通过这个连接,应用程序可以向数据库系统发送SQL操作语句,并获取执行结果。
数据库连接通常需要包括以下几个方面的内容:1.1数据库管理系统:数据库管理系统(DBMS)是一个用来管理数据库的软件系统,它提供了数据的存储、访问和管理功能,常见的数据库管理系统包括MySQL、SQLite、PostgreSQL等。
1.2连接字符串:连接字符串是一个用来描述数据库连接信息的字符串,通常包括数据库的地址、端口、用户名、密码等信息。
1.3连接对象:连接对象是应用程序使用的一个接口,通过这个接口可以进行数据库连接、断开连接、发送SQL语句等操作。
2.数据库连接的实现在C++中实现数据库连接通常需要使用对应数据库管理系统的客户端库,不同的数据库管理系统有着不同的客户端库。
下面以MySQL为例,介绍如何在C++中使用MySQL的客户端库实现数据库连接。
2.1安装MySQL客户端库:首先需要安装MySQL的客户端库,可以通过包管理器或者源码编译的方式进行安装。
2.2引入头文件:在C++程序中需要包含MySQL的客户端库提供的头文件,以便使用其中定义的函数和数据类型。
2.3连接数据库:使用MySQL的客户端库提供的函数,可以创建一个连接对象,并通过连接对象连接到数据库。
2.4执行SQL语句:连接成功后,可以使用连接对象提供的函数发送SQL语句到数据库系统执行,并获取执行结果。
下面是一个使用MySQL客户端库实现数据库连接的简单示例:```C++#include <mysql/mysql.h>#include <iostream>int main(){MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;const char *server = "localhost";const char *user = "username";const char *password = "password";const char *database = "databasename";conn = mysql_init(NULL);if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))std::cout << "Error connecting to database: " << mysql_error(conn) << std::endl;}else{std::cout << "Connected to database successfully" << std::endl;//执行SQL语句if (mysql_query(conn, "SELECT * FROM table")){std::cout << "Error executing SQL query: " <<mysql_error(conn) << std::endl;}elseres = mysql_store_result(conn);if (res){while ((row = mysql_fetch_row(res))) {//处理查询结果}mysql_free_result(res);}}mysql_close(conn);}return 0;```3. SQL操作的基本概念SQL(Structured Query Language)是用来操作关系型数据库的标准化查询语言,通过SQL可以进行数据的增删改查等操作。
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目录下即可。
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类似,但是⽤法不同⽬前我认为的思路就是这样,如果以后有了新的认识,回头再改!。
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 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C# 连接MYSQL数据库的方法及示例连接MYSQL数据库的方法及示例方法一:using MySql、Datausing MySql、Data、MySqlClient;其她操作跟SQL就是差不多,无非就就是前缀变成MySql了、补充:下面就是连接字符串,供参考、MySqlConnection con = new MySql、Data、MySqlClient、MySqlConnection("Database='testdb';Data Source='localhost';UserId='db';Password='apple';charset='utf8'");con、Open();MySqlCommand cmd = new MySqlCommand();cmd、Connection = con;使用MYSQL推出的MySQL Connector/Net is an ADO、NET driver for MySQL该组件为MYSQL为ADO、NET访问MYSQL数据库设计的、NET访问组件。
安装完成该组件后,引用命名空间MySql、Data、MySqlClient;使用命令行编译时:csc /r:MySql、Data、dll test、cs方法二:通过ODBC访问MYSQL数据库访问前要先下载两个组件:odbc、net与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 System、Net;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;UserId=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,地址:在安装文件夹下面找到MySQLDriver、dll,然后将MySQLDriver、dll添加引用到项目中注:我下载的就是版本就是MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2、0、exeusing System;using System、Collections、Generic;using System、ComponentModel;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数据库:参考:1、安装Microsoft ODBC、net:我安装的就是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 System、ComponentModel;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();}}}文章出处:1、用MySQLDriverCS连接MySQL数据库先下载与安装MySQLDriverCS,地址:在安装文件夹下面找到MySQLDriver、dll,然后将MySQLDriver、dll添加引用到项目中注:我下载的就是版本就是MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2、0、exeusing System;using System、Collections、Generic;using System、ComponentModel;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数据库:参考:1、安装Microsoft ODBC、net:我安装的就是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 System、ComponentModel;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();}}}文章出处:C#连接mysql数据库1、连接:1、安装Microsoft ODBC、net。