此行已属于此表。 [英] This row already belongs to this table.

查看:55
本文介绍了此行已属于此表。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

DataTable dtGetList = new DataTable();
            dtGetList.Columns.Add("Sl No").AutoIncrement = true; 
            dtGetList.Columns.Add("VNo");
            dtGetList.Columns.Add("VDate");
            dtGetList.Columns.Add("VName");
            dtGetList.Columns.Add("Amount");
            int SlCount = 1;

            DataRow drGetList = dtGetList.NewRow();

            foreach (DataRow dr in dsGetlist.Tables["GetList"].Rows)
            {
                drGetList["Sl No"] = SlCount;
                drGetList["V1"] = dr["VNo"];
                drGetList["V2"] = dr["VDate"];
                drGetList["V3"] = dr["VName"];
                drGetList["CA"] = Convert.ToDecimal(dr["amt"]);

                dtGetList.Rows.Add(drGetList);//Here i'm Getting error When 2nd time loop through
                SlCount++;
               
            }
            datagrid.DataSource = dsGetlist.Tables["GetList"].Columns[0].AutoIncrement = true;

推荐答案

您不能两次添加同一行。您需要为要添加的每一行创建一个新行。换句话说,在循环中放置 NewRow 调用:

You can't add the same row twice. You need to create a new row for each row to be added. In other words place the NewRow call inside the loop:
DataRow drGetList;
 
foreach (DataRow dr in dsGetlist.Tables["GetList"].Rows)
{
    drGetList = dtGetList.NewRow();

    drGetList["Sl No"] = SlCount;
    drGetList["V1"] = dr["VNo"];
    drGetList["V2"] = dr["VDate"];
    drGetList["V3"] = dr["VName"];
    drGetList["CA"] = Convert.ToDecimal(dr["amt"]);
  
    dtGetList.Rows.Add(drGetList);//Here i'm Getting error When 2nd time loop through
    SlCount++;
              
}


这篇关于此行已属于此表。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆