Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试更新记录,但更新代码仅更新一个时间戳字段,而不更新其他内容_C#_Asp.net_Sql Server_Linq To Sql - Fatal编程技术网

C# 尝试更新记录,但更新代码仅更新一个时间戳字段,而不更新其他内容

C# 尝试更新记录,但更新代码仅更新一个时间戳字段,而不更新其他内容,c#,asp.net,sql-server,linq-to-sql,C#,Asp.net,Sql Server,Linq To Sql,我有一个需要更新记录的数据库表。添加新记录的代码工作正常,但当我更新现有记录时,并不是所有字段都会使用表单中的新信息进行更新 代码如下: private void updateExistingDSN() { //Update existing DSN try { using (PathFinderDataContext pfdcContext = new PathFinderDataContext())

我有一个需要更新记录的数据库表。添加新记录的代码工作正常,但当我更新现有记录时,并不是所有字段都会使用表单中的新信息进行更新

代码如下:

    private void updateExistingDSN()
    {
        //Update existing DSN
        try
        {
            using (PathFinderDataContext pfdcContext = new PathFinderDataContext())
            {
                DSN oldDSN = pfdcContext.DSNs.Single(dsn => dsn.DSNID == int.Parse(Request["dsn"]));

                oldDSN.Auth_AuthorizationID = int.Parse(Request["auth"]);
                oldDSN.ServiceProvided_ServiceProvidedID = int.Parse(Request["sp"]);
                oldDSN.EvidenceBPMU = short.Parse(ddlEvidenceBPMU.SelectedValue);
                oldDSN.LocationOfVisit = txtLocationOfVisit.Text;
                oldDSN.ChildrenPresent = txtNamesOfChildrenPresent.Text;
                oldDSN.ParentPresent = txtNamesOfParentsPresent.Text;
                oldDSN.OthersPresent = txtNamesOfOthersPresent.Text;
                oldDSN.DescribeGoals = txtDescribeGoals.Text;
                oldDSN.DescribeStrategy = txtDescribeStrategies.Text;
                oldDSN.DescibeParentingSkills = txtDescribeParentingSkills.Text;
                oldDSN.DescribeSafetyConcerns = txtDescribeSafetyConcerns.Text;
                oldDSN.OtherInfo = txtOtherInfo.Text;
                oldDSN.Schedule_Monday = float.Parse(txtMonday.Text);
                oldDSN.Schedule_Tuesday = float.Parse(txtTuesday.Text);
                oldDSN.Schedule_Wednesday = float.Parse(txtWednesday.Text);
                oldDSN.Schedule_Thursday = float.Parse(txtThursday.Text);
                oldDSN.Schedule_Friday = float.Parse(txtFriday.Text);
                oldDSN.Schedule_Saturday = float.Parse(txtSaturday.Text);
                oldDSN.Schedule_Sunday = float.Parse(txtSunday.Text);
                oldDSN.DateSaved = DateTime.Now;
                oldDSN.SavedBy_UserID = currentEmployee.EmployeeID;
                pfdcContext.SubmitChanges();
            }

            Response.Redirect("~/pages/updateTimesheet.aspx?action=update&ProvidedServiceId=" + int.Parse(Request["sp"]));
        }
        catch (Exception ex)
        {
            errorMessage.Text = "<b>Error updating an existing DSN record!</b><br /><br />" + ex.ToString();
            warnings.Visible = true;
        }
    }
private void updateExistingDSN()
{
//更新现有DSN
尝试
{
使用(PathFinderDataContext pfdcContext=new PathFinderDataContext())
{
DSN oldDSN=pfdcContext.DSNs.Single(DSN=>DSN.DSNID==int.Parse(请求[“DSN”]);
oldDSN.Auth_AuthorizationID=int.Parse(请求[“Auth”]);
oldDSN.serviceprovedId=int.Parse(请求[“sp”]);
oldDSN.取证BPMU=short.Parse(ddl取证BPMU.SelectedValue);
oldDSN.LocationOfVisit=txtLocationOfVisit.Text;
oldDSN.ChildrenPresent=txtNamesOfChildrenPresent.Text;
oldDSN.ParentPresent=txtnamesofparentpresent.Text;
oldDSN.OthersPresent=txtNamesOfOthersPresent.Text;
oldDSN.descripbegoals=txtsdescripbegoals.Text;
oldDSN.descripbestrategy=txtddescripbestrategies.Text;
oldDSN.DescibeParentingSkills=txtdescriptibeparentingskills.Text;
oldDSN.DescribeSafetyConcerns=txtDescribeSafetyConcerns.Text;
oldDSN.OtherInfo=txtOtherInfo.Text;
oldDSN.Schedule_Monday=float.Parse(txtmanday.Text);
oldDSN.Schedule_tuday=float.Parse(txtdesday.Text);
oldDSN.Schedule_周三=float.Parse(txt周三.Text);
oldDSN.Schedule_thresday=float.Parse(txtdesday.Text);
oldDSN.Schedule_Friday=float.Parse(txtFriday.Text);
oldDSN.Schedule_Saturday=float.Parse(txtstaturday.Text);
oldDSN.Schedule_Sunday=float.Parse(txtsdanday.Text);
oldDSN.DateSaved=DateTime.Now;
oldDSN.SavedBy_UserID=currentEmployee.EmployeeID;
pfdcContext.SubmitChanges();
}
Response.Redirect(“~/pages/updateTimesheet.aspx?action=update&ProvidedServiceId=“+int.Parse(Request[“sp]”));
}
捕获(例外情况除外)
{
errorMessage.Text=“更新现有DSN记录时出错!

”+ex.ToString(); 警告。可见=真; } }

唯一更新的字段是oldDSN.DateSaved,其他所有字段保持不变。没有抛出错误或异常或任何东西。表现得好像有用,但没有。另外,当我硬编码要更新的值时,记录会很好地更新。有什么想法吗?

在您的
页面_Load
(将数据源中的信息放入文本框等)中,您需要将数据绑定代码包装在
If(Page.IsPostBack)
块中

因此,您的代码应该如下所示:

protected void Page_Load (object sender, EventArgs e)
{
    if(!Page.IsPostBack)
    {
        // Whatever you use to load the data from the database into 
        // your server controls goes here
        loadData(); // example
    }
}

这就是为什么您没有获得更新的信息-在更新代码有机会运行之前,您的标记元素正在从数据库中重新加载。

页面中_Load
(将数据源中的信息放入文本框等),您需要将数据绑定代码包装在
If(Page.IsPostBack)中
block

因此,您的代码应该如下所示:

protected void Page_Load (object sender, EventArgs e)
{
    if(!Page.IsPostBack)
    {
        // Whatever you use to load the data from the database into 
        // your server controls goes here
        loadData(); // example
    }
}

这就是为什么您没有获得更新的信息-在更新代码有机会运行之前,正在从数据库重新加载标记元素。

调试代码并检查是否有要更新的值。如果您使用的是visual studio,尝试在方法顶部设置断点,然后右键单击->监视旧DSN。检查所有值是否正确更新。我无法不冒犯地说这句话:因为唯一被更新的值是不是由代码生成的(DateTime.Now),我感觉很可能是您的代码生成了不正确的值。我现在正在逐步检查代码。等一下,我会更新并让你知道发生了什么。好的,发生的事情是:代码似乎工作得很好,但是当它从HTML元素(文本框等)抓取文本时,它不会抓取新键入的信息,它会抓取在page_load运行时放在文本框中的内容,当然,旧的值,因此使它看起来好像没有更新它们。。。但是,我不明白为什么它不能获取刚刚键入的信息。请调试代码并检查是否有要更新的值。如果您使用的是visual studio,请尝试在方法顶部设置断点,然后右键单击->观看旧DSN。检查所有值是否正确更新。我无法不冒犯地说这句话:因为唯一被更新的值是不是由代码生成的(DateTime.Now),我感觉很可能是您的代码生成了不正确的值。我现在正在逐步检查代码。等一下,我会更新并让你知道发生了什么。好的,发生的事情是:代码似乎工作得很好,但是当它从HTML元素(文本框等)抓取文本时,它不会抓取新键入的信息,它会抓取在page_load运行时放在文本框中的内容,当然,旧的值,因此使它看起来好像没有更新它们。。。我不明白为什么它不能抓取刚刚输入的信息。谢谢你。我工作时被困在这里一两天了,一直想不出来。花了很长时间查看我的更新代码,甚至没有想到查看我代码的这一部分。再次感谢@克里斯汉森很高兴我能帮上忙!谢谢你。我已经在这里工作了一两天了,不能休息了