c# - 如何在给定 RowID 和要更新的值的情况下更新表行。 MVC C# 林克

标签 c# asp.net-mvc linq paypal

这是我的代码。 PayPal 向 ActionResult 发送 RowID,即 item_number 和交易 ID,即 pp_txn_id。我只是想引用我的交易表 tblPayPalTransactions 中的行,并使用 pp_txn_id 更新它,我看到它在 PayPal 购买后发回给我。然后将照片链接发送到 DownloadPicture.cshtml 查看。

我根本想不出更新交易表的语法。其他一切我能做的。卡在这里试图完成一个项目。

//ROW IN PHOTOS IS item_number, PAYPAL PAID TRANSACTION IS pp_txn_id
public ActionResult thankyou(string item_number, string pp_txn_id)
{

    var photo = db.PayPalTransactions.Where(x => x.RowID == Convert.ToInt32(item_number));
    photo.pp_txn_id = pp_txn_id;
    db.SubmitChanges();

    var thisPaidPhoto = (from p in db.Photos
                         where p.PhotoId == Convert.ToInt32(item_number)
                         select p).FirstOrDefault();

    return View(thisPaidPhoto);
}

最佳答案

您当前的代码将出现编译错误,因为 Where 方法返回一个集合。所以基本上 photo 变量将是一个集合类型,它不会有 pp_txn_id 属性。

假设 rowid 是该表中记录的唯一标识符,您需要获取单个记录。

您可以使用FirstOrDefault 方法。

var rowId=Convert.ToInt32(item_number)
var photo = db.PayPalTransactions.FirstOrDefault(x => x.RowID ==rowId);
if(photo!=null)
{
   // update now
   photo.pp_txn_id = pp_txn_id;
   db.SubmitChanges();
}
else
{
  // item does not exist in table. Handle as needed.
}

另请记住,如果输入不是有效数值,Convert.ToInt32 方法将抛出异常。为了安全起见,我会使用 Int32.TryParse。但是如果您确定这些值始终是数字类型,我建议您使用数字类型作为参数(intlong)。

关于c# - 如何在给定 RowID 和要更新的值的情况下更新表行。 MVC C# 林克,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45746850/

相关文章:

c# - 全局否定并使大小写不敏感

.net - LINQ 到数据表

c# - 为什么 String.Contains 在此查询中不区分大小写?

asp.net-mvc - 如果使用 LINQ to SQL 有什么好的理由再学习 SQL 查询/语法吗?

c# - 在表单标记中设置操作会生成错误 "Validation of viewstate MAC failed..."

c# - 避免绑定(bind)中的转换器

jquery - 将 Json 返回给 javascript 方法的 Asp.net MVC Ajax 表单

c# - 注入(inject) ActivationException : Error activating IAlertManagement

c# - 如何在不同的测试数据存储格式之间进行选择?

c# - 带有 ASP.NET MVC WebApi 的 Swashbuckle 5.4.0 - swagger 网页内未显示文档