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

标签 c# mysql sql visual-studio datasource

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

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

现在我想问,如果我的应用程序只对数据库进行简单的 CRUD,我应该更改什么(除了连接字符串)?

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

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];

错误:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server).

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

注意,我不想让你重新编写我的代码或任何东西,我只想知道我是否缺少某些东西,或者更改数据源是否不是那么简单?提前致谢。

最佳答案

正如 WearWolf 所写,您需要一个 Mysql 连接器/网络。您可以从 Nuget 将其作为包下载。因为您为 Sql Server 编写的代码需要进行大量修改才能在 MySQL 上运行。

例如

SqlConnection 将是 MySqlConnection

SqlCommand 将是 MySqlCommand

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

您没有提到您的 CRUD 是使用 Entity Framework 编写的,并且 data-source 标记在此处造成混淆。

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

或者如果您使用 SQL 查询执行 CRUD,那么只需使用给定的查找和替换即可工作。

关于c# - 将 Visual Studio 2012 中的数据源从 SQLSRV 更改为 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850724/

相关文章:

sql - 我的 Oracle View 使用了一个不存在的表,但我仍然可以查询它

SQL 查询错误或者它可能是什么?

c# - 通过数据库传递密码如何使其安全

c# - linq中varchar字段的和,如何进行转换

MySQL - 如何有效地获取 ID 最低的行?

C# - 验证字符串是否为 int.TryParse() 以外的数字的更好方法?

MySql 非常复杂的线性格式输出的分层查询

php - 使用 PHP 和 mySQL 自动重定向到创建的页面

c# - 在 (Iron)Python 脚本中引用托管程序集失败

c# - Razor Foreach 循环不返回所有数据