问题标签 [connector-net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7907 浏览

mysql - 参考:使用方法“mysql_native_password”对主机进行 MySql 连接器/网络身份验证失败

我试图弄清楚以下错误消息是什么以及为什么我无法连接 - 尽管任何其他方法都会成功。

错误消息的第一部分内容如下:

您很困惑,请尝试检查您的密码样式。你可能再也不会看第二部分了。

实际上,第一部分是胡说八道。它与错误绝对无关!

继续第二部分和我的回答

0 投票
0 回答
316 浏览

c# - Where() 中的 MySQL 连接器/NET Any() 导致 NotImplementedException

我有一个动态生成的查询,用于搜索相当大的记录集。我正在通过带有实体框架 6 的 NuGet 包使用 MySQL 连接器/NET 6.8.3。在Expression其中执行的Where是以编程方式构建的。

为了解释我看到的问题,我有一个记录,其中包含许多详细记录。我的过滤器生成以下表达式(这是 的输出Expression.ToString()):

因此,首先执行查询以获取记录计数(用于我的分页):

这工作得很好。但是,当我执行下一个查询时,事情就崩溃了:

这个查询抛出一个NotImplementedException(在 a 内System.Data.Entity.Core.EntityCommandCompilationException),它发生在这里:

我的问题:

这是什么原因造成的?我有一份我一直在查看的 MySQL 连接器/NET 源代码的副本,我看到了这个:

我什至调用这个方法做错了什么?为什么它不能处理带有Any内部 a的查询Where,然后执行OrderByDescending,SkipTake?对我来说,这似乎是一个非常合理的查询(我可以轻松写出 SQL……它的ORDER BY后面是 aLIMIT X,Y后面WHERE包含一个EXISTS)。

这在我身上发生了很多,虽然我通常已经找到了解决这个问题的方法(并且可能最终会再次在这里做同样的事情),但当我需要执行一个简单的查询时,我总是感到沮丧(通常涉及Any内部 a Where)。

0 投票
1 回答
1096 浏览

c# - 当 .NET 运行时关闭连接池中的 (My)SQL 连接时

我最近阅读了有关连接池的内容(msdnmysql 文档)。

连接池的目的是不应该强迫 MySQL 客户端不断地进行连接和断开连接。因此,当连接的用户不再需要连接时,可以在 MySQL 客户端中缓存连接。因此,需要连接到同一个 MySQL 服务器的另一个用户可以稍后重用这个缓存的连接(由 Mikael Ronstrom 提供)。

这意味着:

  • 我连接到 MySQL 服务器
  • 执行一些查询
  • 调用 MySqlConnection.Close()
  • 此时连接没有关闭,它保存在客户端(应用程序)的连接池中。如果我再次执行 MySqlConnection.Open(connection string),将从应用程序的连接池中创建/获取连接(连接轮询仅返回 MySqlConnection 的实例)。

我用这段代码测试过:

此时.NET 运行时调用连接器 MySqlConnection.ClearAllPools(); 或 MySqlConnection.ClearPool() 静态方法?这些方法实际上关闭了与 MySQL 服务器的连接。如果 .NET 应用程序崩溃,MySQL 连接会在 wait_timeout 过后关闭吗?我是否应该在应用程序执行结束时调用 ClearAllPool()(最后一行)。

0 投票
1 回答
1082 浏览

c# - 获取 ID 的输出参数(主键)

我有一个简单的数据库,它有一个 ID 列作为主键、INT、AUTO_INCREMENT 和一个名称列。

我正在尝试将值插入数据库并取回 ID。这是我的代码的一部分:

但是,我总是将 NULL 作为值,即使我可以看到该值已插入到数据库中(因此连接设置等都很好)。

我试过的

我已阅读MySQL Connector/NET Output Parameter Returning NULLGet the value from Output parameter C#,但如果我将代码更改为

我已经阅读了相关的帖子Executing MySqlCommand (StoredProcedure) with output parameter,但它对我没有帮助,因为我已经使用了正确的 MySql 数据类型。

0 投票
1 回答
2618 浏览

mysql - MySql.ConnectorNET.Data 与 MySql.Data

NuGet 上的MySql.ConnectorNET.DataMySql.Data包有什么区别?

它们似乎都是由同一个用户 ( MySQL ) 发布的,并且Project Site链接指向同一个位置 ( http://dev.mysql.com/downloads/ )。

安装这两个版本后,ConnectorNET 版本似乎比另一个版本落后了一个版本。

0 投票
1 回答
221 浏览

mysql - 性能非常低的 Asp.Net MySQL 连接器/网络连接池

我有一个 MVC Asp.Net 网站。我选择对整个站点使用单个全局连接,但我开始出现“已经为此连接打开了一个 DataReader”错误。所以我选择更改为在每个命令上实例化一个新的 MySQL 连接:

.

文档说性能是相同的,因为连接器使用连接池,但是当我进行基准测试时,差异非常大!

简单的命令:

...在我的本地机器上执行大约需要 50 毫秒,但是当使用全局连接时,执行需要 0(零)毫秒!0毫秒!!!

所以,我做错了什么,或者这种性能差异是真实的,我必须选择?

我在整个站点中调用的唯一方法是 ECN 和 DS:

0 投票
1 回答
875 浏览

c# - MySQL 连接器/Net EF 数据库优先空间数据类型

使用:

  • 实体框架 5
  • MySQL 连接器网络 6.8.4
  • MySQL 5.6.21
  • 视觉工作室 2013
  • MySQL 工作台 6.2

使用工作台在 MySQL 中创建了下表 MySQL表,五列int类型为pk,linestring,polygon,double,geometry

在 Visual Studio 2013 中打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击画布并选择“从数据库更新模型...”。我继续添加新表,单击完成,这就是吐出来的:

Route Geometry db 模型表的属性不正确 自动生成模型类的冗余图片

如您所见,所有空间数据类型都被忽略了。

数据访问项目包括(除其他外)以下参考:

  • 实体框架
  • MySql.Data
  • MySql.Data.Entity.EF5
  • MySql.Web
  • 系统.数据.实体

我意识到在 EF 中它们将是 DbGeometry 类型,但我觉得更新过程应该能够自己解决这个问题。虽然我可以手动添加映射,但我不希望这样做,因为下次有人运行“从数据库更新模型......”时它们会被吹走

有什么见解或建议吗?谢谢!

编辑: 使用 Entity Framework 6 测试并继续存在问题

0 投票
2 回答
2329 浏览

mysql - 设置程序名称以显示在 MySQL 进程列表中

有没有办法为进程列表中的条目指定程序名称?通常,所有连接都说“无”或“MySQLWorkbench”。在一种情况下,我实际上在连接列表中看到了我正在运行的 .exe 的名称,但我不知道为什么。

这是我在 MySQLWorkbench 客户端连接管理页面上谈论的内容的图片。

MySQl 客户端连接中的程序名称列表

我使用的是 Connector/Net 6.9.6,但在连接字符串选项中没有看到任何内容。

0 投票
1 回答
595 浏览

c# - 在 MySql 连接器/网络上设置 PAD_CHAR_TO_FULL_LENGTH

正如MySQL 参考手册所述,

CHAR 列的长度固定为您在创建表时声明的长度。长度可以是 0 到 255 之间的任何值。存储 CHAR 值时,它们会用空格右填充到指定长度。检索 CHAR 值时,将删除尾随空格,除非启用 PAD_CHAR_TO_FULL_LENGTH SQL 模式。

如何在连接器/网络中启用 PAD_CHAR_TO_FULL_LENGTH 标志?(不是 ODBC)

0 投票
10 回答
50968 浏览

c# - 具有不变名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册

我有一个使用实体框架 6 到 mysql 服务器的 asp.net 解决方案。

现在我必须在新机器上处理该解决方案,
但我有一些问题:
1)在构建解决方案时出现错误:“具有不变名称'MySql.Data.MySqlClient' 的 ADO.NET 提供程序未在机器或应用程序配置文件”。

错误截图

应用程序配置:

2) 打开 model.edmx 文件时,我收到消息:
“实体模式设计器无法显示您请求的文件”。

错误截图

我已经在机器上安装了:

1) mysql 连接器/网络 6.9.9
2) 用于 Visual Studio 1.2.6 的
mysql 3) mysql 连接器 odbc 5.3.6。

我能做些什么?