读取数据集中的特定列

时间:2012-05-31 13:07:31

标签: c# sql

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

我有这段代码:

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"]);

1 个答案:

答案 0 :(得分:2)

您可以从DataTable的{​​{3}}访问column值:

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++;  
}