如果我在数据表中第二次插入行错误来了(此行已经属于此表。) [英] If I Insert A Row Second Time In Datatable The Error Come (This Row Already Belongs To This Table.)

查看:64
本文介绍了如果我在数据表中第二次插入行错误来了(此行已经属于此表。)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

protected void Page_Load(object sender,EventArgs e)

{

try

{

if( !(IsPostBack))

{



SqlConnection con = new SqlConnection(Data Source = RAJU-PC; Initial Catalog = LOGICDBLDH; Persist安全信息=真;用户ID = sa;密码= 1);



SqlDataAdapter adp = new SqlDataAdapter(选择H.Vouch_Date,''总计,H .Vouch_Num为Bill_No,ACT.Act_Name为Account_Name,IMH.Item_Hd_Name为Item_Name,SUM(T.Tot_Qty)为数量,SUM(T.Calc_Net_Amt)为Amt,IMD.Item_Det_COde为Item_Code,来自It_mst_Hd为IMH,It_mst_Det为IMD,sl_txn20132014作为T,sl_Head20132014为H,账户为ACT WHERE H.vouch_code = T.vouch_code AND IMD.Item_Det_COde = t.item_det_code和ACT.Act_Code = H.Cust_Code and IMH.Item_Hd_Code = IMD.Item_Hd_Code GROUP BY H.Vouch_Date,H Vouch_Num,ACT.Act_Name,IMH.Item_Hd_Name,IMD.Item_Det_COd e,con);





DataTable dt = new DataTable();

DataRow dr = dt .NewRow();

dt.Columns.Add(qty-left,typeof(string));

adp.Fill(dt);

grdVIew1.DataSource = dt;

grdVIew1.DataBind();



// DataRow dr = dt.NewRow() ;

//dt.Columns.Add(\"qty-left,typeof(string));



for(int j = 0; j< =(grdVIew1 .Rows.Count-1); j ++)

{



var i = dt.Rows [j] [Item_Code];

SqlCommand cmd = new SqlCommand(选择SUM(T.net_qty)作为Qty1从It_mst_Hd作为IMH,It_mst_Det作为IMD,stk_dtxn20132014作为T,Lot_Mst作为LM WHERE IMH.Item_Hd_Code = IMD.Item_Hd_Code和Lm.lot_Code = T.lot_code和LM .Item_Det_Code = IMD.Item_Det_COde和IMD.item_det_code=@itemCOde);



cmd.Parameters.Add(@ itemCOde,SqlDbType.Int).Value = i;

cmd.Connection = con;

con.Open();

SqlDataReader dtr = cmd.ExecuteReader();

if(dtr.HasRows)

{



dtr.Read();

// dr [qty-left] =;

/ /dt.Rows.Add(dr);

// dr = dt.NewRow();

string var = Convert.ToString(dtr [Qty1]) ;

if(var ==)

{

dt.Rows [j] [qty-left] = ;

}

其他

{



dt.Rows [j] [qty-left] = var;

}



}





con.Close();

}







// for(int j = 0; j< =(dt.Rows.Count - 1); j ++)

// {



//字符串u = Convert.ToString(dt.Rows [j] [Amt]) ;

// // if(u!=)

// //



// //}

// //其他

// // {

// // dt.Rows.RemoveAt(j );

// //}



//}

ViewState [Date1] = ViewState [Date2] = dt.Rows [0] [Vouch_Date];

string l = Convert.ToString(ViewState [Date1]);

string m = Convert.ToString(ViewState [Date2]);

for(int j = 0; j< =(dt.Rows.Count - 1); j ++)

{



string da = Convert.ToString(ViewState [Date1]);

if(Convert.ToDateTime(ViewState [Date1])== Convert.ToDateTime(ViewState [Date2]))

{

}



其他

{







ViewState [date] = dt.Rows [(j - 1)] [Vouch_Date];

int o = j;

for(int k = 0; k< =(j - 1); k ++)

{

ViewState [date2] = dt.Rows [(k)] [Vouch_Date];

if(b Convert.ToDateTime(ViewState [date])== Convert.ToDateTime(ViewState [date2]))

{

ViewState [Total] =转换.ToInt32(ViewState [Total])+ Convert.ToInt32((dt.Rows [(k)] [Amt]));

int t = Convert.ToInt32(ViewState [总计]);

}

}



dr [Vouch_Date] = Convert.ToDateTime( dt.Rows [(j-1)] [Vouch_Date]);

dr [total] =ToTAl;





dr [Amt] = Convert.ToInt32(ViewState [Total]);



dt.Rows.InsertAt(dr,j);



ViewState [Date2] = dt.Rows [j + 1] [ Vouch_Date];





}

ViewState [Date1] = dt.Rows [j + 1] [Vouch_Date];



}



grdVIew1.DataSource = dt;

grdVIew1.DataBind();



}

}

catch(Exception ex)

{

throw(ex);

}







}

protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!(IsPostBack))
{

SqlConnection con = new SqlConnection("Data Source=RAJU-PC;Initial Catalog=LOGICDBLDH;Persist Security Info=True;User ID=sa;Password=1");

SqlDataAdapter adp = new SqlDataAdapter("Select H.Vouch_Date,'' as total, H.Vouch_Num As Bill_No, ACT.Act_Name as Account_Name, IMH.Item_Hd_Name as Item_Name, SUM(T.Tot_Qty) As Qty, SUM(T.Calc_Net_Amt) As Amt, IMD.Item_Det_COde as Item_Code from It_mst_Hd As IMH, It_mst_Det As IMD , sl_txn20132014 As T, sl_Head20132014 As H, Accounts As ACT WHERE H.vouch_code=T.vouch_code AND IMD.Item_Det_COde=t.item_det_code And ACT.Act_Code=H.Cust_Code aND IMH.Item_Hd_Code=IMD.Item_Hd_Code GROUP BY H.Vouch_Date, H.Vouch_Num, ACT.Act_Name, IMH.Item_Hd_Name, IMD.Item_Det_COde ", con);


DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dt.Columns.Add("qty-left", typeof(string));
adp.Fill(dt);
grdVIew1.DataSource = dt;
grdVIew1.DataBind();

//DataRow dr = dt.NewRow();
//dt.Columns.Add("qty-left", typeof(string));

for (int j = 0; j <= (grdVIew1 .Rows.Count-1); j++)
{

var i = dt.Rows[j]["Item_Code"];
SqlCommand cmd = new SqlCommand("Select SUM(T.net_qty) As Qty1 from It_mst_Hd As IMH, It_mst_Det As IMD , stk_dtxn20132014 As T, Lot_Mst As LM WHERE IMH.Item_Hd_Code=IMD.Item_Hd_Code And Lm.lot_Code=T.lot_code And LM.Item_Det_Code=IMD.Item_Det_COde And IMD.item_det_code=@itemCOde");

cmd.Parameters.Add("@itemCOde", SqlDbType.Int).Value = i;
cmd.Connection = con;
con.Open();
SqlDataReader dtr = cmd.ExecuteReader();
if (dtr.HasRows)
{

dtr.Read();
//dr["qty-left"] = "";
//dt.Rows.Add(dr);
//dr = dt.NewRow();
string var =Convert.ToString ( dtr["Qty1"]);
if (var == "")
{
dt.Rows[j]["qty-left"] = "";
}
else
{

dt.Rows[j]["qty-left"] = var;
}

}


con.Close();
}



//for (int j = 0; j <= (dt.Rows.Count - 1); j++)
//{

// string u = Convert.ToString(dt.Rows[j]["Amt"]);
// //if (u != "")
// //{

// //}
// //else
// //{
// // dt.Rows.RemoveAt(j);
// //}

//}
ViewState["Date1"] = ViewState["Date2"] = dt.Rows[0]["Vouch_Date"];
string l = Convert.ToString(ViewState["Date1"]);
string m = Convert.ToString(ViewState["Date2"]);
for (int j = 0; j <= (dt.Rows.Count - 1); j++)
{

string da = Convert.ToString(ViewState["Date1"]);
if ( Convert.ToDateTime(ViewState ["Date1"]) ==Convert.ToDateTime( ViewState["Date2"]))
{
}

else
{



ViewState["date"] = dt.Rows[(j - 1)]["Vouch_Date"];
int o = j;
for (int k = 0; k <= (j - 1); k++)
{
ViewState["date2"] = dt.Rows[(k)]["Vouch_Date"];
if (Convert.ToDateTime ( ViewState["date"]) ==Convert.ToDateTime( ViewState["date2"]))
{
ViewState["Total"] = Convert.ToInt32(ViewState["Total"]) + Convert.ToInt32((dt.Rows[(k)]["Amt"]));
int t = Convert.ToInt32(ViewState["Total"]);
}
}

dr["Vouch_Date"] = Convert.ToDateTime (dt.Rows[(j-1)]["Vouch_Date"]);
dr["total"] = "ToTAl";


dr["Amt"] = Convert.ToInt32(ViewState["Total"]);

dt.Rows.InsertAt(dr,j);

ViewState["Date2"] = dt.Rows[j+1]["Vouch_Date"];


}
ViewState["Date1"] = dt.Rows[j + 1]["Vouch_Date"];

}

grdVIew1.DataSource = dt;
grdVIew1.DataBind();

}
}
catch (Exception ex)
{
throw (ex);
}



}

推荐答案

请检查以下链接:



http://stackoverflow.com/questions/722052/this-row-already-belongs-to-another-table-error-when-trying-to-add-rows [ ^ ]





HTTP://社会。 msdn.microsoft.com/Forums/vstudio/en-US/d270161b-8a5d-43bd-9075-05f97d899849/this-row-already-belongs-to-this-table?forum=vbgeneral [ ^ ]



^ h TTP://forums.asp.net/t/1109294.aspx错误+ +出现此行+ + +已经+属于+本+表+上+加+行+到+ A +数据表 [ ^ ]
Please Check below links :

http://stackoverflow.com/questions/722052/this-row-already-belongs-to-another-table-error-when-trying-to-add-rows[^]


http://social.msdn.microsoft.com/Forums/vstudio/en-US/d270161b-8a5d-43bd-9075-05f97d899849/this-row-already-belongs-to-this-table?forum=vbgeneral[^]

http://forums.asp.net/t/1109294.aspx?Error+appears+This+row+already+belongs+to+this+table+on+add+row+to+a+datatable[^]


这篇关于如果我在数据表中第二次插入行错误来了(此行已经属于此表。)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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