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

首先你需要一个VS和mysql,这个不多说。

然后下载一个mysql的连接插件:
我们选择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();
        }
    }
}



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值