问题标签 [mysqldatareader]

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 回答
187 浏览

mysql - SubSonic:MySqlDataReader 关闭连接

我正在使用 SubSonic 2.1 并在执行交易时遇到问题

SharedDbConnectionScope 和 TransactionScope。问题是在 obj.Save() 方法中,我得到一个“连接必须有效且打开”异常

我将问题追踪到这一行:

在用户类的这个构造函数中,调用了一个方法“LoadParam”,它最终会执行

看起来 rdr.Close() 隐式关闭了我的连接,这在使用 AutomaticConnection 时很好。但是在交易期间关闭连接通常不是一个好主意:-)

我的问题是这是设计使然,还是 MySqlDataReader 中的错误。

0 投票
2 回答
729 浏览

mysql - .NET MySql 是否“使用”关闭数据读取器?

我曾经使用 try/catch/finally 块关闭打开的数据读取器:

但我认为使用“使用”VB 关键字应该更干净(并且更快):

IDispose 接口(Using 需要)是否在 DataReader 上执行关闭?

0 投票
1 回答
83 浏览

sql - 枚举器的 SQL Select 优化

如何针对枚举器优化此查询:

SELECT * FROM Customers

返回一组客户的 SqlReader 将以枚举器方式按需读取。虽然它可以返回可以在 foreach 循环中缓慢读取/使用的巨大数据集,但同一张表上的每个其他查询都会遇到很多争用。如何优化/避免这种情况?光标或选择进入临时表?

这是一个会引起很多争论的代码示例(我对其进行了分析,数字看起来确实很糟糕):


PS 我还需要在 MySQL 中对此进行优化。

0 投票
3 回答
700 浏览

vb.net - 避免 NullReferenceException

我对.NET 编程相当陌生。我正在尝试检查数据库表中是否有设置,如果没有,请创建一些默认设置。问题是,当没有设置时,我需要使用数据读取器进行两次调用,并且它一直给我带来问题。

我最初只使用一个数据读取器,但做了两个尝试解决我的问题,没有用。
然后我尝试关闭数据读取器并收到错误,因为它返回了一个空引用。

如果我尝试关闭它,我会遇到问题,如果我不关闭它,下一个会给我一个错误,说这个连接上已经有一个打开的数据读取器需要关闭。谁能告诉我如何重构我的代码以使其正常工作(最好使用一个数据读取器)?

我还尝试将 reader.close() 放在另一组 try catch 中,虽然这使我能够捕获错误,但它仍然没有关闭 datareader,所以我不知所措。

0 投票
9 回答
22153 浏览

c# - 如何通过列名检查 MySqlDataReader 中的 NULL?

如何检查NULLopen 中的值MySqlDataReader

以下不起作用;它总是击中else

rdr.IsDbNull(int i)只接受列号,不接受名称。

0 投票
16 回答
240134 浏览

mysql - 错误:选择命令拒绝用户''@''为表''

在我的网站中,我使用的是 MySQL 数据库。我正在使用一个网络服务,我在其中进行所有与数据库相关的操作。

现在在该网络服务的一种方法中,我收到以下错误。

选择命令拒绝用户 '<userid>'@'<ip-address>' 用于表 '<table-name>'

有什么问题?

下面是我收到该错误的代码。我尝试调试,发现它在该行失败

MySqlDataReader result1 = command1.ExecuteReader();

这是我的代码:

0 投票
4 回答
32443 浏览

c# - 在 C# 中使用 MySQLConnection 无法正确关闭

最终解决方案:

连接已添加到连接池。所以我关闭了它,但它仍然保持物理打开状态。使用 ConnectionString 参数“Pooling=false”或静态方法 MySqlConnection.ClearPool(connection) 和 MySqlConnection.ClearAllPools 可以避免问题。请注意,问题是,当我关闭应用程序时,连接仍然存在。尽管我关闭了它。因此,要么我根本不使用连接池,要么在关闭连接之前清除特定池,问题就解决了。我会花时间找出对我来说最好的解决方案。

感谢所有回答的人!它帮助我更好地理解了 C# 的概念,并且我从有用的输入中学到了很多东西。:)

===

原始问题:

我已经搜索了一段时间,但没有找到解决我的问题的方法:我是 C# 新手,并尝试编写一个类来简化 MySql Connections。我的问题是,在我打开连接并关闭它之后。它仍然在数据库中打开并被中止。

当然,我使用的是“使用”语句,但是连接仍然打开并且在我退出程序后被中止。

这是我的代码的样子:

类数据库管理器打开连接并在释放时将其关闭:

因此,我在调试器中对其进行了检查,并调用了 Dispose() 方法并正确执行。我错过了什么?是不是我做错了什么或误解了什么?

任何帮助表示赞赏!

问候,西蒙

PS:以防万一,DataReader()方法(更新版本):


好的,我尝试使用收益回报:

我更改了 DataReader 方法:

它以我可以检索数据的方式工作,但我仍然遇到同样的问题:连接没有正确关闭。:(

0 投票
1 回答
871 浏览

asp.net - 我可以通过 MySqlDataReader 重新设置和循环吗?

我有一个 MySqlDataReader 对象,这个查询的结果是:

SELECT warehouse, leasing, transportation, maintenance, manpower FROM retail WHERE zone = 'Central' GROUP BY warehouse

然后我遍历 DataReader 一次,

现在我想再循环一遍……!!

我知道 DataReader 只是一个“只进”的对象。但是这里还有其他适合我的解决方案吗?

我在问,除了 MySqlDataReader 之外,还有什么有效的方法来保存数据吗?

0 投票
6 回答
23451 浏览

c# - MySQLDataReader在c#中检索Null值问题

我目前正在开发一个将导出 MySQL 数据的 C# 项目。导出适用于服务器中的任何数据库,因此我不知道表中的字段和数据类型,也不知道表中的字段是否允许空值。

在测试期间,我发现导出工作正常,但是如果当 mysql 数据读取器进入为空的行时该字段允许为空,则会显示错误 SqlNullValueException,数据为空。

我已经尝试过,if (reader.getString(field) == null) {}但它仍然显示错误。

如何处理数据库中的 Null 值。

感谢您的任何帮助,您可以提供。

0 投票
6 回答
23556 浏览

c# - MySqlDataReader:DataTable.Fill(reader) 抛出 ConstraintException

我有两张桌子ordersorderdetails

表订单(PK = id,orderno 上的唯一索引)

表 orderdetails (PK = id)

现在我想查询数据:

INNER JOIN orderdetails od ON o.orderno = od.order

返回:

但是,如果我使用以下代码将结果加载到 DataTable 中,则会失败:

问题是,那

UniqueConstraintsorderno 列上的一个。大概是因为

有一个IsUnique=trueorderno 条目(在基表中为真,但在连接查询中不为真)。

更糟糕的是,这也无济于事:

任何想法如何解决这一问题?

堆栈跟踪: