下载Connector/Net驱动程序,并安装。

通过MySQLConnection对象来连接数据库,连接MySQL的程序的最前面需要引用MySql.Data.MySqlClient。

using MySql.Data.MySqlClient

创建MySqlConnection对象

MySqlConnection conn=null;

conn=new MySqlConnection("Data Source/Host=主机名或者ip";Initial Catalog/Database=数据库名;User ID=用户名;Password/PWD=用户密码");

Data Source/Host:表示MySQL数据库所在的计算机的主机名或者IP

Initial Catalog/Database:需要连接的数据库

创建MySQLConnection对象后,需要调用Open()函数来执行连接操作

conn.Open();

举个例子:

MySqlConnection conn=null;

conn=new MySqlConnection("Data Source/Host=localhost";Initial Catalog/Database=test;User ID=root;Password/PWD=huang");

conn.Open();//如果conn.Open()执行成功,那么conn的状态就是Open

if(conn.State.ToString=="Open")

{

Console.WriteLine("连接到MySQL数据库,连接成功!");

}

else

{

Console.WriteLine("连接失败!");

}

连接MySQL数据库之后,通过MySQLCommand对象来获取SQL语句,然后通过ExecuteNonQuery()方法对数据库进行插入、更新、和删除操作;通过ExecuteRead()方法查询数据库中的数据,也可以通过ExecuteScalar()方法查询数据;通过MySqlDataReader对象获取SELECT语句的查询结果。除了上述方法操作数据库以外,还可以使用MySqlDataAdapter对象、DataSet对象、DataTable对象来操作数据库

MySqlCommand对象主要用来管理MySqlConnector对象和SQL语句,MySqlCommand创建方法

//其中SQL语句可以是INSERT,UPDATE,DELETE,SELECT,conn为MySqlConnector对象

MySqlCommand com=new MySqlCommand ("SQL语句",conn);

//也可以通过以下方式创建MySqlCommand,这种方式可以按照需要为MySqlCommand对象添加不同的SQL语句。

MySqlCommand com=new MySqlCommand ();

com.Connection=conn;

com.CommandText="SQL语句";

插入,更新,删除数据,如果需要对数据库执行插入,更新和删除等操作,那么需要MySqlCommand对象调用ExecuteNonQuery()方法来实现。ExecuteNonQuery()方法返回一个整形的数字。下面是调用ExecuteNonQuery()方法的代码。

int i=com.ExecuteNonQuery();//com是MySqlCommand对象,com通过ExecuteNonQuery()方法执行com中的INSERT语句,UPDATE语句或者DELETE
                                               //语句,ExecuteNonQuery()执行完成后返回影响表的行数

举个例子:

MysqlCommand com=new MySqlCommand();

com.Connection=conn;

//com对象通过CommandText获取INSERT语句

com.CommandText="INSERT INTO score  VALUES(21,902,'英语',85),(22,903,'英语',90)";

int i=ExecuteNonQuery();

if(i>0)

{

Console.WriteLine("插入的记录数为:"+i);//返回值是所有SQL语句影响表的行数的总和。

}

还可以给com.CommandText传多条SQL语句,多条SQL语句都写在一个""内,并且用;隔开。举例,执行一条UPDATE,再执行一条DELETE

MysqlCommand com=new MySqlCommand();

com.Connection=conn;

//com对象通过CommandText获取INSERT语句

com.CommandText="UPDATE score SET grade=95 WHERE id=5;DELETE FROM score WHERE id=6";

int i=ExecuteNonQuery();

if(i>0)

{

Console.WriteLine("更新和删除的总记录数为:"+i);//返回值是所有SQL语句影响表的行数的总和,结果为2。

}

使用SELECT语句查询数据

ExecuteNonQuery()不能查询数据,如果要执行SELECT语句,则需要MySqlCommand对象调用ExecuteReader()方法来实现,ExecuteReader()方法返回一个MySqlDataReader对象,调用ExecuteReader()方法代码如下:

MySqlDataReader dr;

dr=com.ExecuteReader();//ExecuteReader()方法查询出来的记录都存储在dr中,通过dr调用Read()方法读取数据。如果读取到记录,Read()函数返回true。如果没有读
                                        //取到记录,Read()函数返回false。读取到记录后通过dr["columnName"]或者dr[n]来去读相应字段的数据

下面通过ExecuteReader()方法执行一个SELECT语句,代码如下

MySqlCommand com=null;

MySqlReader dr=null;

com=new MysqlCommand("SELECT * FROM score",conn);

dr=com.ExecuteReader();

while(dr.Read())

{

Console.WriteLine(dr["id"]+"   "+dr["stu_id"]+"   "+dr["c_name"]+"   "+dr["grade"]);

}

注:com调用ExecuteReader()方法来执行SELECT语句,执行结果返回给dr。dr调用Read()函数读取数据,如果Read()返回值为true,执行while循环。在while循环中去读每条记录的值。所有记录去读完毕后或者读取遇到错误,Read()返回false,循环结束。

一次执行多个SELECT语句

一次执行多个SELECT语句时,ExecuteReader()方法会将所有的SELECT语句的执行结果都返回给MySqlDataReader对象。但是MySqlDataReader对象一次只能够读取一个SELECT语句的查询结果。如果需要去读下一个SELECT语句的执行结果,MySqlDataReader对象需要调用NextResult()方法。NextResult()方法获取到下一个SELECT语句的查询结果时,该方法返回true。然后MySqlDataReader对象可以通过Read()函数来读取数据,如果NextResult()方法返回值为false,那么说明结果全部都读取出来了。

实例代码:

MySqlCommand com=null;

MySqlReader dr=null;

//将com实例化,并将两个SELECT语句传递给com

com=new MysqlCommand("SELECT * FROM score;SELECT * FROM Student",conn);

dr=com.ExecuteReader();

while(dr.Read())

{

Console.WriteLine(dr["id"]+"   "+dr["stu_id"]+"   "+dr["c_name"]+"   "+dr["grade"]);

}

if(dr.NextResult())//dr.NextResult()方法最好和while循环一起使用

{

while(dr.Read())

{

Console.WriteLine(dr["id"]+"   "+dr["name"]+"   "+dr["address"]+"   "+dr["department"]);

}

}

c# 访问Mysql的更多相关文章

  1. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  2. PHP访问MySql数据库介绍

    在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...

  3. PHP的MySQL扩展:PHP访问MySQL的常用扩展函数

    来源:http://www.ido321.com/1024.html 一.PHP连接数据库及基本操作 MySQL采用的是’客户机/服务器’架构.使用PHP安装的MySQL扩展函数,和直接使用客户端软件 ...

  4. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  5. 本地tomcat访问mysql数据库

    虽然以前经常听人说起过tomcat,但是今天头一次使用tomcat. 1.Tomcat的安装过程: 首先应该从Apache官方网站上下载是用于Windows的.zip压缩包. 下面是相应的下载链接: ...

  6. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

  7. C#访问MySQL数据库(winform+EF)

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  8. python访问mysql和redis

    1. 修改mysql配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接) 2. 修改redis配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接), ...

  9. python访问mysql

    1,下载mysql-connector-python-2.0.4  pythoin访问mysql需要有客户端,这个就是连接mysql的库 解压后如下图: 双击lib 以windows为例 把mysql ...

  10. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

随机推荐

  1. ZigBee学习二 LED点对点通信

    ZigBee学习二 LED点对点通信 终端上电后,自动连接协调器进行组网,成功后,开始发送LED字符数据.当协调器接收到数据后,终端和协调器的LED1都开始闪烁. 工程搭建和文件添加 步骤这里就省了. ...

  2. BZOJ3524 [Poi2014]Couriers 【主席树】

    题目 给一个长度为n的序列a.1≤a[i]≤n. m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. 输入格式 第一 ...

  3. 人类基因(human)

    题目描述 上了大学之后,小W和小Z一起报了一门三宝课,在实践课上遇到了一些问题. 一条染色体上有nn对基因,每种基因都可以用一个数ai来表示,作为标号. 现在,在其中一条染色单体上某基因发生了突变. ...

  4. iOS指向函数的指针和block

      一:block基础知识 block基础知识 基本概念:block是用来保存一段代码的:^:是block得标志  好比*:是指针的标志 特点:1:保存一段代码: 2:可以有参数和返回值: 3:可以作 ...

  5. Python之面向对象:属性

    一.属性定义 1.类属性 类属性定义在类中且在函数体之外:类属性通常不作为实例属性使用:类变量紧接在类名后面定义 类属性的引用:类名.count eg:Employee.count 实例中可以引用类的 ...

  6. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---22

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  7. yii框架美化访问路径,去掉index.php/?r=部分

    一.找到配置文件(ps:advance高级模板) 在工程目录-> backend目录 或 frontend目录 -> config目录 -> main.php文件 -> 在 r ...

  8. 前端js、jQuery实现日期格式化、字符串格式化

    1. js仿后台的字符串的StringFormat方法 在做前端页面时候,经常会对字符串进行拼接处理,但是直接使用字符串拼接,不但影响阅读,而且影响执行效率,且jQuery有没有定义字符串的Strin ...

  9. 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853

    稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...

  10. luogu P1336 最佳课题选择

    题目描述 Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择.由于课题数有限,Matrix67不得不重复选择一些课题.完成不同课题的论文所花的时间不同.具体地说,对于某个课题i ...