C#和mysql重复查询

标签 c# mysql

我正在寻求意见,以及我是否错过了一个选项。

我正在使用 C# 和 mysql (MySqlDataReader) 编写一个小型库存和销售跟踪系统。由于 mysql 不允许每个连接有多个结果集(MySqlDataReaders),所以我陷入了困境。销售表单的行是用户控件。要选择的字段之一是项目编号。由于我不知道我将拥有多少商品或销售订单最终会包含多少行,因此我不确定以哪种方式进行编码。以下是我提出的选项。

1) 多次执行 SQL(每个用户控件一次)以获取项目。

2)打开多个连接,以便我可以获得多个结果集。

3) 将所有项目转储到 MainForm 中的列表中,并在每个用户控件中检索它。

从减少“触及数据库的角度”来看,选项 3 似乎是最佳选择,但如果我有数千个项目,这会导致内存问题吗?

有人知道哪一个是最有效的(考虑到数据库和内存)或者还有其他我没有想到的选择吗?

最佳答案

在 ASP.Net Webforms 中,有两种常见的方法可以解决此问题。

  1. 单个数据绑定(bind)控件,例如 GridView 或 ListView

  2. 中继器控件

无论哪种情况,将数千条记录推送到网页都不是一个好主意。如果您有很多查询结果,您希望在向用户显示结果方面发挥更多创意。

关于C#和mysql重复查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321985/

相关文章:

php - 查询为空,MySQL 选择查询

MySQL 对于某些日期给出了错误的日期时间值,但对于其他日期却没有给出错误的日期时间值

c# - 无法将文本从控制台输出到文本文件

c# - 什么是 3 种绑定(bind)上下文?

c# - 将 EF Core 查询从 2.2 转换为 3.0 - async await

c# - SoapCoreOptions.Binding 现已过时

c# - 页面内的控件未显示错误模板

mysql - 从新列中的两个表中减去两列

mysql - SQL 选择大于某个值的所有行

java - Java中基于用户输入的MySQL查询