示例#1
0
        //140612_1
        public override bool UpdateDataTable(string SQLCmd, DataTable NewChangeDT)
        {
            bool             result = false;
            OleDbTransaction tr;

            if (conn == null)
            {
                conn.Open();
            }

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            tr = conn.BeginTransaction(IsolationLevel.ReadCommitted);
            try
            {
                OleDbCommand        cm = new OleDbCommand(SQLCmd, conn);
                OleDbDataAdapter    da = new OleDbDataAdapter(cm);
                OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
                da.SelectCommand.Transaction = tr;

                da.Update(NewChangeDT);
                tr.Commit();
                result = true;

                return(result);
            }
            catch (Exception ex)
            {
                try
                {
                    MessageBox.Show(ex.ToString());
                    tr.Rollback();
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    return(result);
                }
                catch (System.Exception TransactionEx)
                {
                    //Handle Exception
                    MessageBox.Show(TransactionEx.ToString());
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    return(result);
                }
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
示例#2
0
        public override bool UpdateDT()
        {
            bool myOPresult = false;

            long myNewlastIDTestPlan       = GetLastInsertData(PNInfo.ConstTestPlanTables[1]);
            long myNewlastIDTestCtrl       = GetLastInsertData(PNInfo.ConstTestPlanTables[2]);
            long myNewlastIDTestModel      = GetLastInsertData(PNInfo.ConstTestPlanTables[3]);
            long myNewlastIDTestPrmtr      = GetLastInsertData(PNInfo.ConstTestPlanTables[4]);
            long myNewlastIDTestEquip      = GetLastInsertData(PNInfo.ConstTestPlanTables[5]);
            long myNewlastIDTestEquipPrmtr = GetLastInsertData(PNInfo.ConstTestPlanTables[6]);

            if (conn == null)
            {
                conn.Open();
            }
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }

            System.Data.SqlClient.SqlTransaction tr;
            tr = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                SqlCommand        cm1 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[1], conn);
                SqlDataAdapter    da1 = new SqlDataAdapter(cm1);
                SqlCommandBuilder cb1 = new SqlCommandBuilder(da1);
                DataTable         dt1 = new DataTable();
                da1.SelectCommand.Transaction = tr;
                //da1.Fill(dt1);

                SqlCommand        cm2 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[2], conn);
                SqlDataAdapter    da2 = new SqlDataAdapter(cm2);
                SqlCommandBuilder cb2 = new SqlCommandBuilder(da2);
                DataTable         dt2 = new DataTable();
                da2.SelectCommand.Transaction = tr;
                //da2.Fill(dt2);

                SqlCommand        cm3 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[3], conn);
                SqlDataAdapter    da3 = new SqlDataAdapter(cm3);
                SqlCommandBuilder cb3 = new SqlCommandBuilder(da3);
                DataTable         dt3 = new DataTable();
                da3.SelectCommand.Transaction = tr;
                //da3.Fill(dt3);

                SqlCommand        cm4 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[4], conn);
                SqlDataAdapter    da4 = new SqlDataAdapter(cm4);
                SqlCommandBuilder cb4 = new SqlCommandBuilder(da4);
                DataTable         dt4 = new DataTable();
                da4.SelectCommand.Transaction = tr;
                //da4.Fill(dt4);

                SqlCommand        cm5 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[5], conn);
                SqlDataAdapter    da5 = new SqlDataAdapter(cm5);
                SqlCommandBuilder cb5 = new SqlCommandBuilder(da5);
                DataTable         dt5 = new DataTable();
                da5.SelectCommand.Transaction = tr;
                //da5.Fill(dt5);

                SqlCommand        cm6 = new SqlCommand("select * from  " + PNInfo.ConstTestPlanTables[6], conn);
                SqlDataAdapter    da6 = new SqlDataAdapter(cm6);
                SqlCommandBuilder cb6 = new SqlCommandBuilder(da6);
                DataTable         dt6 = new DataTable();
                da6.SelectCommand.Transaction = tr;
                //da6.Fill(dt6);

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[1].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[1].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[1].Rows[i]["ID"]) > PNInfo.origIDTestPlan)
                        )
                    {
                        PNInfo.TopoToatlDS.Tables[1].Rows[i]["ID"] = myNewlastIDTestPlan + 1;
                        myNewlastIDTestPlan++;
                    }
                }

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[2].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[2].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[2].Rows[i]["ID"]) > PNInfo.origIDTestCtrl))
                    {
                        PNInfo.TopoToatlDS.Tables[2].Rows[i]["ID"] = myNewlastIDTestCtrl + 1;
                        myNewlastIDTestCtrl++;
                    }
                }

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[3].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[3].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[3].Rows[i]["ID"]) > PNInfo.origIDTestModel)
                        )
                    {
                        PNInfo.TopoToatlDS.Tables[3].Rows[i]["ID"] = myNewlastIDTestModel + 1;
                        myNewlastIDTestModel++;
                    }
                }

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[4].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[4].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[4].Rows[i]["ID"]) > PNInfo.origIDTestPrmtr)
                        )
                    {
                        PNInfo.TopoToatlDS.Tables[4].Rows[i]["ID"] = myNewlastIDTestPrmtr + 1;
                        myNewlastIDTestPrmtr++;
                    }
                }

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[5].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[5].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[5].Rows[i]["ID"]) > PNInfo.origIDTestEquip)
                        )
                    {
                        PNInfo.TopoToatlDS.Tables[5].Rows[i]["ID"] = myNewlastIDTestEquip + 1;
                        myNewlastIDTestEquip++;
                    }
                }

                for (int i = 0; i < PNInfo.TopoToatlDS.Tables[6].Rows.Count; i++)
                {
                    if ((PNInfo.TopoToatlDS.Tables[6].Rows[i].RowState == DataRowState.Added) &&
                        (Convert.ToInt64(PNInfo.TopoToatlDS.Tables[6].Rows[i]["ID"]) > PNInfo.origIDTestEquipPrmtr)
                        )
                    {
                        PNInfo.TopoToatlDS.Tables[6].Rows[i]["ID"] = myNewlastIDTestEquipPrmtr + 1;
                        myNewlastIDTestEquipPrmtr++;
                    }
                }

                dt1 = PNInfo.TopoToatlDS.Tables[1];
                dt2 = PNInfo.TopoToatlDS.Tables[2];
                dt3 = PNInfo.TopoToatlDS.Tables[3];
                dt4 = PNInfo.TopoToatlDS.Tables[4];
                dt5 = PNInfo.TopoToatlDS.Tables[5];
                dt6 = PNInfo.TopoToatlDS.Tables[6];

                DataTable dtAdded1    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified1 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted1  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted1  = dt1.GetChanges(DataRowState.Deleted);
                dtMidified1 = dt1.GetChanges(DataRowState.Modified);
                dtAdded1    = dt1.GetChanges(DataRowState.Added);

                DataTable dtAdded2    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified2 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted2  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted2  = dt2.GetChanges(DataRowState.Deleted);
                dtMidified2 = dt2.GetChanges(DataRowState.Modified);
                dtAdded2    = dt2.GetChanges(DataRowState.Added);

                DataTable dtAdded3    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified3 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted3  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted3  = dt3.GetChanges(DataRowState.Deleted);
                dtMidified3 = dt3.GetChanges(DataRowState.Modified);
                dtAdded3    = dt3.GetChanges(DataRowState.Added);

                DataTable dtAdded4    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified4 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted4  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted4  = dt4.GetChanges(DataRowState.Deleted);
                dtMidified4 = dt4.GetChanges(DataRowState.Modified);
                dtAdded4    = dt4.GetChanges(DataRowState.Added);

                DataTable dtAdded5    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified5 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted5  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted5  = dt5.GetChanges(DataRowState.Deleted);
                dtMidified5 = dt5.GetChanges(DataRowState.Modified);
                dtAdded5    = dt5.GetChanges(DataRowState.Added);

                DataTable dtAdded6    = new DataTable(); //存放主表 新增 的数据
                DataTable dtMidified6 = new DataTable(); //存储主表 编辑 的行记录
                DataTable dtDeleted6  = new DataTable(); //存储主表 删除 的行记录

                dtDeleted6  = dt6.GetChanges(DataRowState.Deleted);
                dtMidified6 = dt6.GetChanges(DataRowState.Modified);
                dtAdded6    = dt6.GetChanges(DataRowState.Added);

                if (dtDeleted6 != null)
                {
                    da6.Update(dtDeleted6);
                }
                if (dtDeleted5 != null)
                {
                    da5.Update(dtDeleted5);
                }
                if (dtDeleted4 != null)
                {
                    da4.Update(dtDeleted4);
                }
                if (dtDeleted3 != null)
                {
                    da3.Update(dtDeleted3);
                }
                if (dtDeleted2 != null)
                {
                    da2.Update(dtDeleted2);
                }
                if (dtDeleted1 != null)
                {
                    da1.Update(dtDeleted1);
                }


                if (dtAdded1 != null)
                {
                    da1.Update(dtAdded1);
                }
                if (dtMidified1 != null)
                {
                    da1.Update(dtMidified1);
                }

                if (dtAdded2 != null)
                {
                    da2.Update(dtAdded2);
                }
                if (dtMidified2 != null)
                {
                    da2.Update(dtMidified2);
                }

                if (dtAdded3 != null)
                {
                    da3.Update(dtAdded3);
                }
                if (dtMidified3 != null)
                {
                    da3.Update(dtMidified3);
                }


                if (dtAdded4 != null)
                {
                    da4.Update(dtAdded4);
                }
                if (dtMidified4 != null)
                {
                    da4.Update(dtMidified4);
                }

                if (dtAdded5 != null)
                {
                    da5.Update(dtAdded5);
                }
                if (dtMidified5 != null)
                {
                    da5.Update(dtMidified5);
                }

                if (dtAdded6 != null)
                {
                    da6.Update(dtAdded6);
                }
                if (dtMidified6 != null)
                {
                    da6.Update(dtMidified6);
                }

                tr.Commit();
                myOPresult = true;
                PNInfo.TopoToatlDSAcceptChanges();
                return(myOPresult);
            }
            catch (Exception ex)
            {
                try
                {
                    MessageBox.Show(ex.ToString());
                    tr.Rollback();
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                }
                catch (System.Exception TransactionEx)
                {
                    //Handle Exception
                    MessageBox.Show(TransactionEx.ToString());
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                }
                return(myOPresult);
            }
            finally
            {
                if (conn.State.ToString().ToUpper() == "OPEN")
                {
                    conn.Close();
                }
            }
        }
示例#3
0
        public override bool UpdateDataTable(string SQLCmd, DataTable NewChangeDT, bool IsAddNewData)
        {
            bool result = false;

            if (conn == null)
            {
                conn.Open();
            }
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlTransaction tr;

            tr = conn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                SqlCommand        cm   = new SqlCommand(SQLCmd, conn);
                SqlDataAdapter    da   = new SqlDataAdapter(cm);
                SqlCommandBuilder cb   = new SqlCommandBuilder(da);
                DataTable         mydt = new DataTable();
                da.SelectCommand.Transaction = tr;

                if (IsAddNewData)
                {
                    for (int i = 0; i < NewChangeDT.Rows.Count; i++)
                    {
                        NewChangeDT.Rows[i].SetAdded();
                    }
                }
                da.Update(NewChangeDT);
                tr.Commit();

                result = true;

                return(result);
            }
            catch (Exception ex)
            {
                try
                {
                    MessageBox.Show(ex.ToString());
                    tr.Rollback();
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                    return(result);
                }
                catch (System.Exception TransactionEx)
                {
                    //Handle Exception
                    MessageBox.Show(TransactionEx.ToString());
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                    return(result);
                }
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
示例#4
0
        public override bool UpdateDataTable(string SQLCmd, DataTable NewChangeDT, bool IsAddNewData)
        {
            bool result = false;

            if (conn == null)
            {
                conn.Open();
            }
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlTransaction tr;

            tr = conn.BeginTransaction(IsolationLevel.RepeatableRead);

            try
            {
                SqlCommand        cm   = new SqlCommand(SQLCmd, conn);
                SqlDataAdapter    da   = new SqlDataAdapter(cm);
                SqlCommandBuilder cb   = new SqlCommandBuilder(da);
                DataTable         mydt = new DataTable();
                da.SelectCommand.Transaction = tr;

                if (IsAddNewData)
                {
                    for (int i = 0; i < NewChangeDT.Rows.Count; i++)
                    {
                        NewChangeDT.Rows[i].SetAdded();
                    }
                }
                da.Update(NewChangeDT);
                tr.Commit();

                result = true;

                return(result);
            }
            catch (Exception ex)
            {
                try
                {
                    //141031_00----------
                    if (ex.Message.ToUpper().Contains("违反并发性"))
                    {
                        MessageBox.Show("Update data failed:\n" + "Maybe Other users have already deleted the target data records\n" + ex.Message);
                    }
                    else
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    //  WriteErrorLogs(ex.ToString());
                    //-------------------
                    tr.Rollback();
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                    return(result);
                }
                catch (System.Exception TransactionEx)
                {
                    //Handle Exception
                    MessageBox.Show(TransactionEx.ToString());
                    if (conn.State.ToString().ToUpper() == "OPEN")
                    {
                        conn.Close();
                    }
                    return(result);
                }
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
示例#5
0
        public override bool UpdateDataTable(string SQLCmd, DataTable NewChangeDT)
        {
            lock (syncRoot)
            {
                bool result = false;

                if (conn == null)
                {
                    conn.Open();
                }
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                SqlTransaction tr;
                tr = conn.BeginTransaction(IsolationLevel.RepeatableRead);

                try
                {
                    SqlCommand        cm   = new SqlCommand(SQLCmd, conn);
                    SqlDataAdapter    da   = new SqlDataAdapter(cm);
                    SqlCommandBuilder cb   = new SqlCommandBuilder(da);
                    DataTable         mydt = new DataTable();
                    da.SelectCommand.Transaction = tr;

                    if (NewChangeDT.GetErrors() != null)
                    {
                        da.Update(NewChangeDT);
                        tr.Commit();
                    }
                    result = true;

                    return(result);
                }
                catch (Exception ex)
                {
                    try
                    {
                        MessageBox.Show(ex.ToString());
                        tr.Rollback();
                        if (conn.State.ToString().ToUpper() == "OPEN")
                        {
                            conn.Close();
                        }
                        return(result);
                    }
                    catch (System.Exception TransactionEx)
                    {
                        //Handle Exception
                        MessageBox.Show(TransactionEx.ToString());
                        if (conn.State.ToString().ToUpper() == "OPEN")
                        {
                            conn.Close();
                        }
                        return(result);
                    }
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
            }
        }