读取数据集中的特定列

本文关键字:集中 数据 数据集 读取 | 更新日期: 2023-09-27 18:36:05

我有一个问题,如何读取特定的列表单数据集....

我有这个代码:

cmd_line.CommandText = "SELECT IDOC_NUM, SEG_NUM FROM AGR3PL_LINE WHERE IDOC_NUM = '" + Lidoc_num + "'";
OracleDataAdapter ora_adapter_li = new OracleDataAdapter(cmd_line);
DataSet ds_idoc_li = new DataSet("AGR3PL_LINE");
ora_adapter_li.Fill(ds_idoc_li, "AGR3PL_LINE");
if (ds_idoc_li.Tables[0].Rows.Count == 0)
{
   SEG_NUM_L = 1;
}
else
{
   int var = Convert.ToInt32(ds_idoc_li.Tables["AGR3PL_LINE"]["SEG_NUM"]);
   SEG_NUM_L = var;
   SEG_NUM_L++;
}

首先我选择提取SEG_NUM变量,然后检查数据集中是否有任何行,如果没有设置为 SEG_NUM = 1,否则如果有任何数据提取SEG_NUM,读取它并将其递增为 1。

我对这部分有问题:

int var = Convert.ToInt32(ds_idoc_li.Tables["AGR3PL_LINE"]。行[0]["SEG_NUM"]);

如果我有 2 个条目,

它工作正常,但如果有超过 2 个条目,我会收到 3 个错误。 条目:位置 0 处没有线,计数器始终递增 2。

这部分不对

 Convert.ToInt32(ds_idoc_li.Tables["AGR3PL_LINE"].Rows[0]["SEG_NUM"]);

读取数据集中的特定列

您可以按如下方式访问DataTable的 Rows 集合中的列值:

Convert.ToInt32(ds_idoc_li.Tables["AGR3PL_LINE"].Rows[indexofRow][columnName or Index]);

试试这个:

if (ds_idoc_li.Tables[0].Rows.Count == 0)
{
   SEG_NUM_L = 1;
}
else
{
  foreach(DataRow row in ds_idoc_li.Tables["AGR3PL_LINE"].Rows)
  {
   int var = Convert.ToInt32(row["SEG_NUM"]);
   SEG_NUM_L = var;
   }
   SEG_NUM_L++;  
}