问题标签 [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.
mysql - 参考:使用方法“mysql_native_password”对主机进行 MySql 连接器/网络身份验证失败
我试图弄清楚以下错误消息是什么以及为什么我无法连接 - 尽管任何其他方法都会成功。
错误消息的第一部分内容如下:
您很困惑,请尝试检查您的密码样式。你可能再也不会看第二部分了。
实际上,第一部分是胡说八道。它与错误绝对无关!
继续第二部分和我的回答
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
,Skip
和Take
?对我来说,这似乎是一个非常合理的查询(我可以轻松写出 SQL……它的ORDER BY
后面是 aLIMIT X,Y
后面WHERE
包含一个EXISTS
)。
这在我身上发生了很多,虽然我通常已经找到了解决这个问题的方法(并且可能最终会再次在这里做同样的事情),但当我需要执行一个简单的查询时,我总是感到沮丧(通常涉及Any
内部 a Where
)。
c# - 当 .NET 运行时关闭连接池中的 (My)SQL 连接时
我最近阅读了有关连接池的内容(msdn、mysql 文档)。
连接池的目的是不应该强迫 MySQL 客户端不断地进行连接和断开连接。因此,当连接的用户不再需要连接时,可以在 MySQL 客户端中缓存连接。因此,需要连接到同一个 MySQL 服务器的另一个用户可以稍后重用这个缓存的连接(由 Mikael Ronstrom 提供)。
这意味着:
- 我连接到 MySQL 服务器
- 执行一些查询
- 调用 MySqlConnection.Close()
- 此时连接没有关闭,它保存在客户端(应用程序)的连接池中。如果我再次执行 MySqlConnection.Open(connection string),将从应用程序的连接池中创建/获取连接(连接轮询仅返回 MySqlConnection 的实例)。
我用这段代码测试过:
此时.NET 运行时调用连接器 MySqlConnection.ClearAllPools(); 或 MySqlConnection.ClearPool() 静态方法?这些方法实际上关闭了与 MySQL 服务器的连接。如果 .NET 应用程序崩溃,MySQL 连接会在 wait_timeout 过后关闭吗?我是否应该在应用程序执行结束时调用 ClearAllPool()(最后一行)。
c# - 获取 ID 的输出参数(主键)
我有一个简单的数据库,它有一个 ID 列作为主键、INT、AUTO_INCREMENT 和一个名称列。
我正在尝试将值插入数据库并取回 ID。这是我的代码的一部分:
但是,我总是将 NULL 作为值,即使我可以看到该值已插入到数据库中(因此连接设置等都很好)。
我试过的
我已阅读MySQL Connector/NET Output Parameter Returning NULL并Get the value from Output parameter C#,但如果我将代码更改为
我已经阅读了相关的帖子Executing MySqlCommand (StoredProcedure) with output parameter,但它对我没有帮助,因为我已经使用了正确的 MySql 数据类型。
mysql - MySql.ConnectorNET.Data 与 MySql.Data
NuGet 上的MySql.ConnectorNET.Data和MySql.Data包有什么区别?
它们似乎都是由同一个用户 ( MySQL ) 发布的,并且Project Site
链接指向同一个位置 ( http://dev.mysql.com/downloads/ )。
安装这两个版本后,ConnectorNET 版本似乎比另一个版本落后了一个版本。
mysql - 性能非常低的 Asp.Net MySQL 连接器/网络连接池
我有一个 MVC Asp.Net 网站。我选择对整个站点使用单个全局连接,但我开始出现“已经为此连接打开了一个 DataReader”错误。所以我选择更改为在每个命令上实例化一个新的 MySQL 连接:
.
文档说性能是相同的,因为连接器使用连接池,但是当我进行基准测试时,差异非常大!
简单的命令:
...在我的本地机器上执行大约需要 50 毫秒,但是当使用全局连接时,执行需要 0(零)毫秒!0毫秒!!!
所以,我做错了什么,或者这种性能差异是真实的,我必须选择?
我在整个站点中调用的唯一方法是 ECN 和 DS:
c# - MySQL 连接器/Net EF 数据库优先空间数据类型
使用:
- 实体框架 5
- MySQL 连接器网络 6.8.4
- MySQL 5.6.21
- 视觉工作室 2013
- MySQL 工作台 6.2
使用工作台在 MySQL 中创建了下表
在 Visual Studio 2013 中打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击画布并选择“从数据库更新模型...”。我继续添加新表,单击完成,这就是吐出来的:
如您所见,所有空间数据类型都被忽略了。
数据访问项目包括(除其他外)以下参考:
- 实体框架
- MySql.Data
- MySql.Data.Entity.EF5
- MySql.Web
- 系统.数据.实体
我意识到在 EF 中它们将是 DbGeometry 类型,但我觉得更新过程应该能够自己解决这个问题。虽然我可以手动添加映射,但我不希望这样做,因为下次有人运行“从数据库更新模型......”时它们会被吹走
有什么见解或建议吗?谢谢!
编辑: 使用 Entity Framework 6 测试并继续存在问题
mysql - 设置程序名称以显示在 MySQL 进程列表中
有没有办法为进程列表中的条目指定程序名称?通常,所有连接都说“无”或“MySQLWorkbench”。在一种情况下,我实际上在连接列表中看到了我正在运行的 .exe 的名称,但我不知道为什么。
这是我在 MySQLWorkbench 客户端连接管理页面上谈论的内容的图片。
我使用的是 Connector/Net 6.9.6,但在连接字符串选项中没有看到任何内容。
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)
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。
我能做些什么?