c# - 应用程序中返回的记录数与数据库中不同
问题描述
我正在对以前完美运行并完美返回记录的应用程序进行更正。没有问题。我有这样的问题。例如,我有 3 条状态为 N 的记录,它返回 2。依此类推。它只是不会经常向我返回与数据库中相同数量的记录。与此同时,我经常开发一个可以在生产环境中运行的应用程序。而且我注意到了这样的依赖性,例如,我在测试应用程序中看不到的 724xxx 之类的订单是我在生产中早些时候输入的订单,以查看“里面有什么”,因为不幸的是你必须工作。
进入应用程序后,启动一个给定的方法,它负责连接订单。
public void Read_Main()
{
try
{
using (OracleConnection conn = new OracleConnection(Connection.oradb))
using (OracleCommand cmd = new OracleCommand("SELECT VBELN as ZLECENIE,KUNNR as ODBIORCA,DATA_ZLEC as DATA,UZEIT_ZLEC as GODZINA,MAIL_UTWORZYL as UTWORZYŁ,MAIL_PH as PH, STATUS as ST,WARTOSC_N AS WARTOSC FROM DWS1.AUTOMAT_NGL_POZ", conn))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
using (OracleDataReader reader = cmd.ExecuteReader())
{
reader.Read();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
List<DataRow> newOrders = dataTable.AsEnumerable().Where(x => x.Field<string>("ST") == "N").ToList();
foreach (var item in newOrders)
{
Automation_Positive_Cena_2(conn, item["ZLECENIE"].ToString(), item["ODBIORCA"].ToString(), item["UTWORZYŁ"].ToString(), item["PH"].ToString());
}
dataGridView1.DataSource = dataTable;
dataGridView1.RowHeadersVisible = false;
dataGridView2.Hide();
label3.Show();
dataGridView2.DataSource = "";
negativetbox.Clear();
}
conn.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
解决方案
那不是reader.read()
丢弃数据的第一行。然后你填充DataTable
?这就是你少一排的原因吗?
因此,请尝试删除该行并仅填充DataTable
.
推荐阅读
- php - PHP MySQL 使用 COUNT 和 WHERE
- sql - 如何在 DB2 中向这条 SQL 语句添加值?
- r - 你如何在R中将时间四舍五入到下一个小时
- javascript - 如果表单字段未填写,如何不打开窗口?
- javascript - V-model 属性仅在页面刷新后更新
- node.js - 为什么多层异步函数不能捕获节点中最低级别引发的错误?
- python - 多对多使用 foreign_keys 选项
- c# - 有没有办法只调用一次注册表并提取各种键值
- google-sheets - 根据其他单元格中的数据制作一个添加到值的公式
- python - 如何使用 pandas 连接两个表并聚合第二个表中的数据并将其导出为 json