您的位置:首页 > 数据库 > MySQL

C#使用ODBCl连接MySql详细教程

2016-01-14 17:11 941 查看
首先你需要一个VS和mysql,这个不多说。

然后下载一个mysql的连接插件:

http://dev.mysql.com/downloads/connector/

我们选择ODBC。
因此,http://dev.mysql.com/downloads/connector/odbc/
选择适合你的版本下载吧。点击安装就可以了。

然后在VS中新建C#项目,在项目的引用中,右键打开引用管理器:





在引用管理器中添加:



示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using MySql.Data;
using MySql.Data.MySqlClient;

namespace MySQLTest
{
class Test
{
private MySqlConnection mysqlcon;

Test()
{
const string constr = "server=localhost;User Id=waponx;password=learning;Database=Education";
mysqlcon = new MySqlConnection(constr);
//  打开mysql连接,在使用之前必须要打开,否则会抛出异常
// 在不使用mysql的时候记得关闭
mysqlcon.Open();

//  生成一个mysql语句,第一个参数为你的语句,第二个参数为mysql连接
//  第二个参数可省,默认值为null
MySqlCommand mysqlcmd_NonQuery = new MySqlCommand("insert into myaccount(name, password, identity) values(\'haha\', \'123\', \'Student\')", mysqlcon);
//  执行语句
mysqlcmd_NonQuery.ExecuteNonQuery();

MySqlCommand mysqlcmd_Query = new MySqlCommand("select * from myaccount", mysqlcon);
//   如果执行mysql语句会返回信息,就可以通过MySqlDataReader类型来读取这些信息。
//   比如select语句
//      ExecuteReader函数返回一个MySqlDataReader对象
MySqlDataReader dataReader = mysqlcmd_Query.ExecuteReader();

//  FieldCount属性,查询结果的字段数
int count = dataReader.FieldCount;
//  读取这个结果集合
//  想要访问查询结果,先要执行Read函数
dataReader.Read();
string[] title = new string[count];
for (int i = 0; i < count; ++i)
{
//  获取第i列的标题,通过i指定第几列
title[i] = dataReader.GetName(i);
}
// Read函数每次从执行的结果中读取一行
// 有数据可以读就返回true
while (dataReader.Read())
{
for (int i = 0; i < dataReader.FieldCount; ++i)
{
//  IsDBNull函数可以判断读取到的数据的第i列为不为空
//  如果为空就返回true
if (!dataReader.IsDBNull(i))
{
Console.WriteLine("查询结果的当前当的第{0}列不为空", i);
//  GetString函数可以以字符串的形式返回读取到的这一行的第i列的数据
//  类似的还有
//  dataReader.GetChar(i);
/// dataReader.GetInt32(i);等等
Console.WriteLine("查询结果的当前当的第{0}列的内容为:", i, dataReader.GetString(i));
}
else
{
Console.WriteLine("查询结果的当前当的第{0}列为空", i);
}

}
}
//  IsClosed可以用来判断MySqlDataReader是否已经被关闭了
//  如果没有关闭要记得关闭,否则不能对这个mysql连接再执行ExecuteReader

if (!dataReader.IsClosed)
{
//  如果在没有关闭这个MySqlDataReader情况下使用了ExecuteReader和Read,就会抛出异常
dataReader.Close();
}
//  关闭mysql连接
CloseMySqlConnect();
}

public void CloseMySqlConnect()
{
//  关闭mysql
mysqlcon.Close();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: