将Visual Studio 2012中的数据源从SQLSRV更改为MySQL

时间:2014-05-24 23:47:11

标签: c# mysql sql visual-studio datasource

我在Visual Studio 2012中有一个基本的应用程序,它连接到Sql Server 2008 R2,但现在我希望它只连接到MySQL数据库(其表和列是相同的)。

我为Visual Studio下载了MySQL,我在数据源中成功连接到MySQL中的数据库。

现在我想问一下,如果只使用db进行简单的CRUD,我应该从我的应用程序(连接字符串除外)中更改什么?

例如,我更改了连接字符串,当应用程序尝试在db中搜索并填充数据集时,我在此代码中发现错误:

SqlDataAdapter dataAdapter = database.getPaquetes(date, _destino);

        SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        dgv_paqdisp.ReadOnly = true;
        dgv_paqdisp.DataSource = ds.Tables[0];

ERROR:

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (provider:Named Pipes Provider,错误:40 - 无法打开与SQL Server的连接)。

这些类型仅适用于SQL Server吗?如果是,使用MySQL时的等价物是什么?

注意我不想让你重新制作我的代码或任何东西,我只想知道是否有一些我缺少的东西,或者它是不是很难改变DataSource?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您需要添加对MySQL Connector/NET程序集的引用。它们应该随MySQL for Visual Studio一起提供,否则该链接有下载说明。

然后你的代码将变成类似

的代码
MySqlDataAdapter dataAdapter = database.getPaquetes(date, _destino);

自从使用ADO.net

实施后,它不会发生太大变化

答案 1 :(得分:1)

正如WearWolf所写,你需要一个Mysql Connector / Net。您可以从Nuget下载它作为包。对于为Sql Server编写的代码,需要修改太多才能使其在MySQL上运行。

例如

SqlConnection将为MySqlConnection

SqlCommand将为MySqlCommand

您可以执行此更改手动查找解决方案中的每个.cs文件的替换项。最后,您将在MySQL中使用您的应用程序。

您没有提到您的CRUD是使用实体框架编写的,data-source标记会在此处混淆。

如果您使用Entity框架,那么只需从数据库生成实体,因为Mysql是您需要先在mysql数据库中创建表的另一个数据库系统。

或者如果您使用SQl查询执行CRUD,那么只需使用给定的查找和替换它就可以了。