2017-08-02 61 views
1

我想更新只有单行列值与回滚提交,但当我创建表内的对象如果并通过insertonsubmit它给了我错误,PLZ帮助我我怎么能解决这个我想更新只有单行列值与回滚提交

var challan = dataContext.Purchase_Challans.Where(t => t.Challan_ID == Convert.ToInt64(ViewState["challanid"]) && t.Company_ID == Convert.ToInt32(Session["CompanyId"])).Select(t => t).ToList(); 
         if (challan.Any()) 
         { 
          challan.ToList()[0].Inv_DocumentId = dmsPurchaseInvoice.Document_ID; 
          dataContext.Purchase_Challans.InsertOnSubmit() 
          dataContext.SubmitChanges(); 
         } 

回答

0

将有助于了解有关错误的更多细节,但我认为那是因为你讲的DataContext插入您刚刚检索(而你想更新)的实体。

此外,您发布的代码甚至没有编译,并且充满了有问题的代码,例如challan.ToList()已经是列表或解析代理中的字符串。

这就是说,这个代码更简单,更容易的工作(但说实话,我没有测试):

var challanId = Convert.ToInt64(ViewState["challanid"]); 
var companyId = Convert.ToInt32(ViewState["CompanyId"]); 
var challan = dataContext.Purchase_Challans.SingleOrDefault(t => t.Challan_ID == challanId && t.Company_ID == companyId); 
if (challan != null) 
{ 
    challan.Inv_DocumentId = dmsPurchaseInvoice.Documet_Id; 
    dataContext.SubmitChanges(); 
} 
+0

Thanks.It对我。我的工作是想,如果我使用直接“submitchanges()”没有insertonsubmit然后回滚它不工作,但它现在工作感谢这一点。 –

+0

当我追求更多的声誉时,你能否将答案标记为已接受的答案并投票?谢谢。 – tinudu