我有一个问题,如何阅读特定的列表单数据集....
我有这段代码:
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"]);
答案 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++;
}