-1

既存のレコードを更新したい。また、コードをデバッグしました。int id 変数は値を取得しますが、レコードが更新されない理由がわかりません。

SQLDBDataClassesDataContext dContext = new SQLDBDataClassesDataContext();
protected void Page_Load(object sender, EventArgs e)
{
    //if (!IsPostBack)
    {
        if (!string.IsNullOrEmpty(Request.QueryString["fname"]))
        {
            FirstNameTextBox.Text = Request.QueryString["fname"];
        }
        if (!string.IsNullOrEmpty(Request.QueryString["lname"]))
        {
            LastNameTextBox.Text = Request.QueryString["lname"];
        }
        if (!string.IsNullOrEmpty(Request.QueryString["cellnum"]))
        {
            CellNumberTextBox.Text = Request.QueryString["cellnum"];
        }
    }
}

protected void UpdateButton_Click(object sender, EventArgs e)
{
    int id = Convert.ToInt32(Request.QueryString["id"]);
    var updatequery1 = dContext.PersonalDetailTables
        .Where(pd => pd.ID == id).SingleOrDefault();

    if (updatequery1 != null)
    {
        updatequery1.FirstName = FirstNameTextBox.Text;
        updatequery1.LastName = LastNameTextBox.Text;
        updatequery1.CellNumber = CellNumberTextBox.Text;
        dContext.SubmitChanges();
    }
}
4

4 に答える 4

0

私は解決策を手に入れました..唯一の問題は if(!ispostback) の問題でした。

于 2012-08-28T11:50:48.593 に答える
0

if (updatequery1 != null)

updatequery1 は null ですか? 今の場合は、すぐにスキップします。ブレークポイントを設定してステップスルーします。

または、代わりに .SingleOrDefautl を .Single に変更します。このようにして、何も見つからない場合は例外が発生し、何が起きているかがわかります。

于 2012-08-28T11:17:18.993 に答える
0

を呼び出すdContext.InsertOnSubmit(fooentity)前にメソッドを呼び出しdContext.SubmitChanges();ます。

例えば。

 var ctx = DB.fooDB;
        fooobj.fooName= bar.fooName;
        fooobj.fooID= bar.fooID;
        if (fooobj.fooID== 0)
            ctx.Locations.InsertOnSubmit(bar);
        ctx.SubmitChanges();
于 2012-08-28T11:45:18.427 に答える
-1
context.InvProductStockMasters
       .Update(ps => ps.LocationID.Equals(invStockAdjustmentHeader.LocationID) 
                  && ps.ProductID.Equals(invStockAdjustmentDetail.ProductID), 
               ps => new InvProductStockMaster 
                          { Stock = ps.Stock - invStockAdjustmentDetail.OrderQty });
于 2013-11-20T09:40:39.370 に答える