如果我在数据表中第二次插入行错误来了(此行已经属于此表。) [英] If I Insert A Row Second Time In Datatable The Error Come (This Row Already Belongs To This Table.)
问题描述
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屋!