Linq2SQL没有更新SQL Azure上的记录

时间:2012-03-06 15:38:35

标签: c# linq-to-sql azure

我正在尝试Azure并遇到一个我似乎无法找到答案的问题。

我正在运行linq查询以更新Azure数据库并更改记录,但由于某种原因,更改未被记录或提交到数据库。我运行的代码如下:

DataClasses1DataContext update = new DataClasses1DataContext();

    Company extra = update.Companies.Single(p => p.ID == Convert.ToInt32(Request.QueryString["ID"]));

    extra.companyName = txtCompanyName.Text;
    extra.address1 = txtAddress1.Text;
    extra.address2 = txtAddress2.Text;
    extra.address3 = txtAddress3.Text;
    extra.address4 = txtAddress4.Text;
    extra.town = txtTown.Text;
    extra.county = txtCounty.Text;
    extra.postCode = txtPostCode.Text;
    extra.billingEmail = txtBillingEmail.Text;
    extra.facebook = txtFacebook.Text;
    extra.fax = txtFaxNumber.Text;
    extra.faxArea = txtFaxArea.Text;
    extra.faxCountry = txtFaxCountry.Text;
    extra.linkedIn = txtLinkedIn.Text;
    extra.mainEmail = txtMainEmail.Text;
    extra.mainPhone = txtMainLineNumber.Text;
    extra.mainPhoneArea = txtMainLineArea.Text;
    extra.mainPhoneCountry = txtMainLineCountry.Text;

    if (drpMarketing.Text == "No")
    {
        extra.marketingYesNo = 0;
    }
    else
    {
        extra.marketingYesNo = 1;
    }

    extra.salesEmail = txtSalesEmail.Text;
    extra.twitter = txtTwitter.Text;
    extra.website = txtWebsite.Text;

    update.SubmitChanges();

通过设置断点我注意到的是,如果我加载页面然后更改某些数据,那么在调用此代码时它会反映新数据(它处于btnUpdate_Click事件中)

因此,当使用submitChanges()时,新数据不会提交。任何帮助表示赞赏....我想我已经看了很长时间它需要一些新鲜的眼睛哈哈。

2 个答案:

答案 0 :(得分:1)

您确定没有使用原始数据(从数据库中重新选择)重新填充表单OnPostback,以便linq更新实际可行,但您始终将最新的数据库数据提交回数据库。

换句话说,您确定只填写表格

if(!Page.IsPostback)
{
//populate the form
}

这将在发生回发时保留用户修正。

答案 1 :(得分:0)

您是否尝试将SubmitChanges包装在try块中?也许这是一个例外。以下是如何记录更新,这与您正在做的非常相似:

http://msdn.microsoft.com/en-us/library/bb399339.aspx

此外,这是否适用于本地SQL Server数据库或SQL Express数据库?