DateTime begin = Convert.ToDateTime(aa);
string date = begin.ToLongTimeString();
string shipID = this.DropDownList3.Text.ToString();
string departmentID = this.DropDownList4.Text.ToString();
string worktypeID = this.DropDownList5.Text.ToString();
clsstat_accum_worktypeF m_clsstat_accum_worktype1F = new clsstat_accum_worktypeF(date, shipID, departmentID, worktypeID);
m_clsstat_accum_worktype1F.ActuAlHour_current = Convert.ToInt32(this.workhour.Text.ToString());
m_clsstat_accum_worktype1F.ActuAlWeight_current = Convert.ToInt32(this.matrial.Text.ToString()); if (m_clsstat_accum_worktype1F.EditRecord())
  {
    Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('已更新!');</script>");   }
   else
   {
     Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('更新失败!');</script>");
     return;
    }
RT!!代码有错吗??
运行完显示“已更新”,但是数据库里并没有更新!!

解决方案 »

  1.   

    调试跟踪到下面这个方法(EditRecord())中,看一下
    m_clsstat_accum_worktype1F.EditRecord())
      

  2.   

    在这个代码处设置个断点单步调试看看是哪出错了
    if (m_clsstat_accum_worktype1F.EditRecord())
      

  3.   

    调试了
    if (m_dsstat_accum_worktype.stat_accum_worktype.Rows.Count > 0)
                {
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["date"] = date;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["shipID"] = shipID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["departmentID"] = departmentID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["worktypeID"] = worktypeID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualHour_current"] = actualHour_current;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualWeight_current"] = actualWeight_current;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualHour_accum"] = actualHour_accum;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualWeight_accum"] = actualWeight_accum;
    }
    if (m_clsstat_accum_worktypeD.UpdateDatabase(m_dsstat_accum_worktype))
                {
                    return true;
                }
                else
                {
                    return false;
                }
    在上面的if里面是不符合条件的,里面的那些没有走!是不是因为
    clsstat_accum_worktypeF m_clsstat_accum_worktype1F = new clsstat_accum_worktypeF(date, shipID, departmentID, worktypeID);
    里面的条件设置有问题呢?所以找不到指定要更新的记录??
      

  4.   

    m_clsstat_accum_worktype1F.EditRecord()
    方法帖出来
      

  5.   


    protected void Button2_Click(object sender, EventArgs e)
            {
                string condition = "";
                if (TextBox1_AddDate.Text != "")
                {
                    string DateTime = this.TextBox1_AddDate.Text.ToString();
                    condition = condition + "Date='" + DateTime + "' and ";
                }
                if (DropDownList_shipID.Text != "")
                {
                    string ShipID = this.DropDownList_shipID.Text.ToString();
                    condition = condition + "ShipID='" + ShipID + "' and ";
                }
                if (DropDownList_departmentID.Text != "")
                {
                    string DepartmentID = this.DropDownList_departmentID.Text.ToString();
                    condition = condition + "DepartmentID='" + DepartmentID + "' and ";
                }
                if (DropDownList_worktypeID.Text != "")
                {
                    string WorktypeID = this.DropDownList_worktypeID.Text.ToString();
                    condition = condition + "WorktypeID='" + WorktypeID + "' and ";
                }
                condition = condition + "1=1";
                DataSet dsstat_day_search = clscollection_groupF.GetInfoByCondition(condition);
                GridView1_searchworktype.DataSource = dsstat_day_search;
                GridView1_searchworktype.DataBind();            //计算工时物量及工效
                int p = dsstat_day_search.Tables[0].Rows.Count;
                double g = 0;
                double d = 0;
                for (int i = 0; i < p; i++)
                {
                    double finishedHour_today = Convert.ToDouble(dsstat_day_search.Tables[0].Rows[i]["actualHour_today"].ToString());
                    double finishedWeight_today = Convert.ToDouble(dsstat_day_search.Tables[0].Rows[i]["actualWeight_today"].ToString());
                    g += finishedHour_today;
                    d += finishedWeight_today;
                }
                double efficiency_today = g / d;
                this.textbox3.Text = g.ToString();
                this.textbox1.Text = d.ToString();
                this.textbox2.Text = efficiency_today.ToString();            //写入表
                dsstat_perday_worktype m_stat_perday_worktype = new dsstat_perday_worktype();
                clsstat_perday_worktypeF m_clsstat_perday_worktypeF = new clsstat_perday_worktypeF();
                DateTime today = this.Calendar1.SelectedDate;
                m_clsstat_perday_worktypeF.Date = today;
                m_clsstat_perday_worktypeF.ShipID = this.DropDownList_shipID.Text.ToString();
                m_clsstat_perday_worktypeF.DepartmentID = this.DropDownList_departmentID.Text.ToString();
                m_clsstat_perday_worktypeF.WorktypeID = this.DropDownList_worktypeID.Text.ToString();
                m_clsstat_perday_worktypeF.FinishedHour_today = Convert.ToInt32(this.textbox3.Text.ToString());
                m_clsstat_perday_worktypeF.FinishedWeight_today = Convert.ToInt32(this.textbox1.Text.ToString());
                m_clsstat_perday_worktypeF.EfficiEncy_today = float.Parse(this.textbox2.Text.ToString());
                if (m_clsstat_perday_worktypeF.InsertRecord())
                {
                    Response.Write("<script language='javascript'>alert('已保存!')</script>");            }
                else
                {
                    string date = this.Calendar1.SelectedDate.ToString();
                    string shipID = this.DropDownList_shipID.Text.ToString();
                    string departmentID = this.DropDownList_departmentID.Text.ToString();
                    string worktypeID = this.DropDownList_worktypeID.Text.ToString();
                    clsstat_accum_worktypeF m_clsstat_accum_worktype1F = new clsstat_accum_worktypeF(date, shipID, departmentID, worktypeID);
                    m_clsstat_perday_worktypeF.FinishedHour_today = Convert.ToInt32(this.textbox3.Text.ToString());
                    m_clsstat_perday_worktypeF.FinishedWeight_today = Convert.ToInt32(this.textbox1.Text.ToString());
                    m_clsstat_perday_worktypeF.EfficiEncy_today = float.Parse(this.textbox2.Text.ToString());                if (m_clsstat_accum_worktype1F.EditRecord())
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('已更新!');</script>");                }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('更新失败!');</script>");
                        return;
                    }
                }
            }
      

  6.   


    public bool EditRecord()
            {
                clsstat_accum_worktypeD m_clsstat_accum_worktypeD = new clsstat_accum_worktypeD();            if (m_dsstat_accum_worktype.stat_accum_worktype.Rows.Count > 0)
                {
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["date"] = date;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["shipID"] = shipID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["departmentID"] = departmentID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["worktypeID"] = worktypeID;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualHour_current"] = actualHour_current;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualWeight_current"] = actualWeight_current;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualHour_accum"] = actualHour_accum;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["actualWeight_accum"] = actualWeight_accum;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["m"] = m;
                    m_dsstat_accum_worktype.stat_accum_worktype.Rows[0]["n"] = n;
                }            if (m_clsstat_accum_worktypeD.UpdateDatabase(m_dsstat_accum_worktype))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
      

  7.   

    m_clsstat_accum_worktypeD.UpdateDatabase中的代码呢?
      

  8.   


    public bool UpdateDatabase(dsstat_accum_worktype m_dsstat_accum_worktype)
            {            try
                {
                    sqlConnection1.Open();
                    
                    tran = sqlConnection1.BeginTransaction();                sqlSelectCommand1.Transaction = tran;
                    sqlInsertCommand1.Transaction = tran;
                    sqlUpdateCommand1.Transaction = tran;
                    sqlDeleteCommand1.Transaction = tran;                if (sqlDataAdapter1.Update(m_dsstat_accum_worktype) > -1)
                    {
                        tran.Commit();
                        sqlConnection1.Close();                    return true;
                    }
                    else
                    {
                        tran.Rollback();
                        sqlConnection1.Close();                    return false;
                    }
                }
      

  9.   

    晕!上面落了一段catch(Exception ex)
                {
                    //clsSiteLogD.LogExceptionFail(ex.Message, "system", "clsstat_accum_worktype/UpdateDatabase/Exception");
                    if (sqlConnection1.State == System.Data.ConnectionState.Open)
                    {
                        tran.Rollback();
                        sqlConnection1.Close();
                    }                return false;
                }
            }
      

  10.   

    你把
    sqlDataAdapter1.Update(m_dsstat_accum_worktype) > -1
    换成
    sqlDataAdapter1.Update(m_dsstat_accum_worktype) > 0
    试试
      

  11.   

    我的天啊。命名那么长。你的这个项目是大型项目吗?可是大型项目怎么还是用'++'这种非参数化的ADO.NET操作
      

  12.   

    对啊,肯定是失败的
    你这个m_dsstat_accum_worktype是什么?自定义类型?是继承DataSet的吗?
      

  13.   

    在//写入表后面定义的啊dsstat_perday_worktype m_stat_perday_worktype = new dsstat_perday_worktype();
    clsstat_perday_worktypeF m_clsstat_perday_worktypeF = new clsstat_perday_worktypeF();这个……是继承Dataset么……
    我系小小菜鸟…………
      

  14.   

    那你把dsstat_perday_worktype这个类的代码再发上来看看
      

  15.   


    public dsstat_perday_worktype() {
                this.BeginInit();
                this.InitClass();
                System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged);
                base.Tables.CollectionChanged += schemaChangedHandler;
                base.Relations.CollectionChanged += schemaChangedHandler;
                this.EndInit();
            }是这样吧??
      

  16.   

    你这个是构造函数,我要的是整个类的代码,从public class dsstat_perday_worktype开始
      

  17.   

    是public partial class dsstat_perday_worktype里面的代码么??