hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

运用VS2013操纵MYSQL8 (ADO.NET体式格局 & EF6)

2019-11-18杂谈搜奇网37°c
A+ A-

本日有时间测试了一下经由历程.net环境操纵MYSQL数据库,测试历程及效果纪录以下:

1、MYSQL装置

(1)我是从MYSQL官网下载的最新版,即MYSQL8.0,在MySql官网的下载页面,找到“MySQL Installer for Windows”。

MySql下载页面地点:https://dev.mysql.com/downloads/

上图中,MySql for Visual Studio和Connector/NET用于后边的EF操纵,MySQL Installer for Windows为Windows上的装置文件下载。

(2)MySql一共供应两种装置体式格局,一种当地装置,一个是在线装置,我是下载的当地装置文件。如图:

下载以后一起“Next”,详细装置体式格局不详述,能够参考相干文章。

装置完成后,趁便装了一个MySql可视化东西:Navicat for mysql。关于Navicat for mysql的破解装置,能够参考:https://blog.csdn.net/mqingo/article/details/84314685。

然后在MySql建了一个测试库Test,同时建了一张测试表:Student,为便于测试,只设置了两个字段:Id和Name。

2、ADO.NET体式格局操纵MySql

.(1)NET操纵MySql,须要先援用MySQL.Data.dll,这个文件的默许位置在:C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2。翻开这个文件夹,能够看到除了这个MySQL.Data.dll,MySql官方还供应了其他一些如:MySql.Data.EntityFramework.dll的文件,背面会用到,其他像MySQL.Data.EntityFrameworkCore.dll应当是针对.net Core的响应供应顺序。

(2)新建一个.net控制台应用顺序,援用上面提到的MySQL.Data.dll。经由历程对象浏览器检察,能够看到MySQL.Data.dll供应了诸如ADO接见SqlServer的相干功用。如:MySqlConnection 、MySqlCommand、MySqlDataAdapter、MySqlDataReader等,所差别的只是由Sql换成了Mysql。

(3)设置数据库衔接字符串,编写相干代码举行测试,几个内置对象的用法与SqlServer完全相同,差别的只是MySql自身的SQL语法一般与SqlServer差别,因此在实行SQL时应当注重。

class Program
    {
        static void Main(string[] args)
        {
            string connstr = "Server=localhost;User Id=root;Password=******;PersistSecurityInfo=True;Port=3306;DataBase=test;Charset=utf8mb4;SslMode=none";

            //插进去数据
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                MySqlCommand cmd = new MySqlCommand("INSERT INTO Student (name) VALUES('test12')", conn);
                conn.Open();
                cmd.ExecuteNonQuery();
            }

            //数据读取器测试
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM Student", conn);
                conn.Open();
                MySqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while(sdr.Read())
                {
                    Console.WriteLine(string.Format("Id:{0} Name:{1}", sdr["Id"], sdr["Name"]));
                }
            }

            //DataSet测试
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                MySqlDataAdapter sda = new MySqlDataAdapter("SELECT * FROM Student", conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                foreach(DataRow dr in dt.Rows)
                {
                    Console.WriteLine(string.Format("Id:{0} Name:{1}", dr["Id"], dr["Name"]));
                }
            }

            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                
            }
        }
    }

 

(4)测试效果

注重事项:

MySql 8的MySql.Data.dll请求.net Framework版本最低为v4.5.2,经由历程MySql.Data.dll地点途径也能看出来

假如低于此版本,在代码编译期会没法经由历程,提醒:未能找到范例或定名空间称号“MySql”(是不是缺乏 using 指令或顺序集援用?)

3、EF体式格局操纵MySql

采纳EF体式格局操纵MySql,须要先装置两个插件,然后还须要经由历程NuGet装置EF,中心可能会踩坑。详细步骤以下:

(1)装置Visual Studio 2013所需插件

在运用Visual Studio 2013增添ADO.NET实体数据模型新建衔接时,默许是没有Mysql选项的。此时我们须要装置两个东西:

1、mysql-for-visualstudio:Mysql的Visual Studio插件。

mysql-for-visualstudio的官网下载地点:https://dev.mysql.com/downloads/windows/visualstudio/,MySql官网默许供应的版本是1.2.9的装置包,但1.2.9是不支持VS2013的,假如装置1.2.9版本的话,会提醒最低请求你的VS版本是2015。

此时我们能够下载低版本的装置包,在适才的下载页面上,点击“Looking for previous GA versions?”,如图:

点击后,在页面上下载1.1.4版本的装置包。

 2、mysql-connector-net:.net衔接Mysql的顺序。

网上有材料说,这个.net衔接顺序并不是越高越好,但我既然装置了MySql 8,天然这个mysql-connector-net也要装置对应的版本。

mysql-connector-net装置包下载地点:https://dev.mysql.com/downloads/connector/net/

(2)经由历程NuGet装置EF


完成上面的两个插件装置后,在增添ADO.NET数据库时的数据源挑选就会涌现MySql挑选项,如图:

在挑选EF版本的时刻,会报错,提醒找不到兼容的实体框架供应顺序。如图所示:

解决办法以下:

1、先经由历程NuGet装置EntityFramework  6.0

     Install-Package EntityFramework -Version 6.0.0
     Install-Package EntityFramework.zh-Hans -Version 6.0.0

2、在你的项目中引入C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2下MySql.Data.dllMySql.Data.EntityFramework.dll两个文件。

3、在项目配置文件的entityFramework节点下的providers节点增添一个供应顺序:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"></provider>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="testEntities" connectionString="***" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

注重赤色标识部份,即:MySql.Data.EntityFramework,要与你的MySql.Data.EntityFramework.dll中的定名空间保持一致,此处版本差别要援用的顺序集称号也不相同。

4、从新生成项目,一定要从新生成项目!

5、从新增添ADO.NET实体数据模型,已能够增添胜利,如图:

6、能够举行一个简朴测试,测试代码以下:

 

class Program
    {
        static void Main(string[] args)
        {
            testEntities db = new testEntities();

            //增添数据
            db.student.Add(new student { Name = "这是一个测试" });
            db.SaveChanges();

            //读取数据
            foreach(var p in db.student)
            {
                Console.WriteLine(p.Name);
            }
        }
    }

 

 

以上是VS2013衔接MySql的一些纪录,个中.net版本,以及相干装置包的版本挑选要注重,本文没有举行更多的测试,另有其他的许多坑没有踩,踩到再说吧。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
运用VS2013操纵MYSQL8 (ADO.NET体式格局 & EF6)

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282169.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>