0

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

我有这个代码:

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"].Rows[0]["SEG_NUM"]);

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

这部分不对

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

1 回答 1

2

您可以从 as 的Rows 集合中访问值:DataTable

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++;  
}
于 2012-05-31T13:21:30.757 回答