zoukankan      html  css  js  c++  java
  • [Jimmy原创] 在.NET环境下操作MySQL数据库

            由于工作需要,最近需要在我的一个.NET程序里面对MySQL数据库进行操作,最简单的方法便是用ODBC连接,这是一个通用性很强的方法,但是这样做也有其缺点,就是软件部署的时候客户机也需要安装MySQL的ODBC驱动,以及做一些设定工作,这样对一般用户来说是比较困难的,就算你提供详尽的安装指南。那么能不能像我们在.NET环境里面使用ADO.NET操作MS SQLServer数据库一样的方便的操作MySQL数据库呢?答案是可以的。。。

            大家可以看看MySQL官方的这篇文章Exploring MySQL in the Microsoft .NET Environment,如同这篇文章所说的一样,现在我们在.NET环境要访问MySQL数据库有3种方法:
        1、使用ODBC.NET - MyODBC连接,这里我们不讨论这个方法,因为ODBC的方法现在已经比较成熟,相关使用设置的文章也到处都有。
        2、使用OLEDB.NET - MyOLEDB连接,现在MySQL还没有正式的支持MyOLEDB,我们在这里也不进行讨论。
        3、使用类似ADO.NET的方法连接MySQL数据库 - Using MySQL Native .NET Providers。yes,我们要的就是这个。
             
           使用这样的方法我们就能方便的随心所欲的操作MySQL数据库,SqlConnection 、SqlDataAdapter、SqlCommand?yes,就是这样的,只不过前面加上My,是基于MySQL数据库的。现在有2家公司开发并提供这样的组件下载:
            1、ByteFX.Data     
                        免费并且是开源的一个项目,现在已经被收编为MySQL的官方Connector/Net
            2、CoreLabs
                        需要购买使用的组件,不过提供Trial版本(使用限制:select 的时候只能返回6个字段)
            
            其实我一开始找方法在.NET下操作MySQL数据库时一下子就在MySQL官方网站上找到了Connector/Net,下载安装。试用了一下觉得一切正常,心里面正窃喜。结果在东西做到后面部分的时候一下子把我打懵了,原来时Connector/Net还不支持中文,select回来数据都是乱码,我汗啊,当时第二天就要交东西的初版,尝试了多次之后还是搞不定这个中文的问题(可能这东西我还没有吃透吧)。已经做好准备临时改用ODBC的方式,但是怀着一点点的不死心,又在网上找方法,找到了上述那篇文章,简直是救命稻草啊,下载CoreLabs 组件使用之后几乎什么都没有改(把引用和名字改了一下),程序就可以用了,不错不错。这个时候又让我寒心的事情又出现了,select的数据不完整,老是出错,找了半天才在CoreLabs 的主页找到说明了,Trial版只能返回6列字段(在产品说明里面很小的字注释,真是#%…#◎¥◎),没有办法,由于时间比较紧,东西也不大,就将就用了,每个select都得分成2,3此才能把数据取完,权宜之计只好这样拉。哪位大侠有破解版啊
           
            总结一下,现在不想用ODBC连MySQL的话就用Connector/Net或者CoreLabs 组件吧,确实是很方便的方法,Connector/Net做的不错而且现在是官方推荐的,只是中文不支持,等着他们更新吧。CoreLabs 组件也不错,只是Trial版有字段返回的限制,大家看着选用吧,hoho。

            最后贴一点代码,大家可以看出来和ADO的使用几乎没有区别的说......

    using System.Text;
    using CoreLab.MySql;          //here



    mySqlConnection1.ConnectionString 
    = connectStr ;                
    try
    {
        mySqlConnection1.Open();    
    }

    catch(Exception exp)
    {
    Debug.WriteLine(exp.Message);
    }




    string mySqlstr = "SELECT UpID,UserID,Catalog,FullName,FileSize,FileName from " 
                                  + tableName + " where FileName = '" + dbFileName + "'";        

      MySqlCommand cmd 
    = new MySqlCommand(mySqlstr,mySqlConnection1);

      MySqlDataReader myReader 
    = cmd.ExecuteReader();

    while(myReader.Read())    
    {
       
    }

    myReader.Close();


                



            好了,感冒了头昏昏的。。。有问题大家不要笑哦。。。

  • 相关阅读:
    MySQL数据类型2
    MySQL数据类型1
    powerdesigner使用之——从“概念模型”到“物理模型”
    javascript中click和onclick的区别
    eclipse将javaSE项目导出成可执行jar包
    配置SQLServer,允许远程连接
    VirtualBox虚拟机中安装XP系统
    fastjson 的使用总结
    idea前端页面不刷新----springboot
    后台可以用layui快速开发
  • 原文地址:https://www.cnblogs.com/Jimmy/p/41892.html
Copyright © 2011-2022 走看看