Пример #1
0
 public bool isUpdatable(DataSet i_ds, string i_TableName)
 {
     Debug.Assert(!(m_Connection == null), "Ban chua viet BeginTranaction");
     CCommandBuilder v_cb = new CCommandBuilder(m_Connection, i_ds, i_TableName);
     System.Data.SqlClient.SqlCommand v_cmd = default(System.Data.SqlClient.SqlCommand);
     v_cmd = v_cb.getUpdatableCommand();
     v_cmd.Connection = m_Connection;
     v_cmd.Transaction = m_Trans;
     v_cmd.CommandType = CommandType.StoredProcedure;
     try
     {
         v_cmd.ExecuteNonQuery();
         return true;
     }
     catch (System.Exception v_e)
     {
         throw (v_e);
     }
 }
Пример #2
0
        //' 12/09/2013: LinhDH thêm
        private decimal ExecuteCommandInsertLog(DataSet i_ds, string i_TableName, DMLCommandType i_DMLCommandType, decimal i_dcIdNguoiDung, string i_strTenThamSo, decimal i_dcID)
        {
            // Đây là lệch excecute các command
            // tạo connection và command
            System.Data.SqlClient.SqlConnection v_cn = default(System.Data.SqlClient.SqlConnection);
            if (m_HaveTrans)
            {
                v_cn = m_Connection;
            }
            else
            {
                v_cn = CProvider.getConnection();
            }

            CCommandBuilder v_cb = new CCommandBuilder(v_cn, i_ds, i_TableName);
            System.Data.SqlClient.SqlCommand v_cmd = default(System.Data.SqlClient.SqlCommand);
            SqlParameter v_out_para = default(SqlParameter);
            v_out_para = null;
            switch (i_DMLCommandType)
            {
                case DMLCommandType.DeleteCommand:
                    v_cmd = v_cb.getDeleteCommand();
                    break;
                case DMLCommandType.InsertCommand:
                    v_cmd = v_cb.getInsertCommandInsertLog(i_dcIdNguoiDung, i_strTenThamSo);
                    v_out_para = v_cmd.Parameters["@ID"];
                    break;
                case DMLCommandType.UpdateCommand:
                    v_cmd = v_cb.getUpdateCommandInsertLog(i_dcIdNguoiDung, i_strTenThamSo);
                    break;
                case DMLCommandType.DeleteByIDCommand:
                    v_cmd = v_cb.getDeleteByIDCommandInsertLog(i_dcID, i_dcIdNguoiDung, i_strTenThamSo);
                    break;
            }

            v_cmd.CommandTimeout = C_COMMAND_TIME_OUT;

            // thực hiện lệnh DML

            if (m_HaveTrans)
            {
                v_cmd.Transaction = m_Trans;
                v_cmd.Connection = m_Trans.Connection;
            }
            else
            {
                //Trai lai thi phai tao mo connection da co
                v_cmd.Connection.Open();
            }
            //Bien luu id vua insert vao trong truong hop insert
            decimal v_dc_new_id = 0;

            try
            {
                v_cmd.ExecuteNonQuery();
                //Neu trong truong hop insert thi phai tra lai id vua moi insert vao
                if (i_DMLCommandType == DMLCommandType.InsertCommand)
                {
                    v_dc_new_id = System.Convert.ToDecimal(v_out_para.Value);
                }
            }
            catch (System.Exception v_e)
            {
                throw (v_e);
            }
            finally
            {
                //Neu khong co transaction thi phai dong connection lai
                if (!m_HaveTrans)
                {
                    v_cmd.Connection.Close();
                }
            }
            //Trong truong hop Insert thi tra ve id vua insert
            //Nguoc lai tra ve 0
            return v_dc_new_id;
        }
Пример #3
0
 public void FillDataset(
     DataSet i_ds
     , string i_TableName
     , string i_strDieuKien
     )
 {
     // Lấy một dataset từ csdl dựa trên điều kiện cho trước
     System.Data.SqlClient.SqlDataAdapter v_da = CProvider.getAdapter();
     CCommandBuilder v_cb = default(CCommandBuilder);
     if (!m_HaveTrans) //Csung update
     {
         // Tạo ra connection
         System.Data.SqlClient.SqlConnection v_cn = CProvider.getConnection();
         v_cb = new CCommandBuilder(v_cn, i_ds, i_TableName);
         // Tạo ra adapter
         v_da.SelectCommand = v_cb.getSelectCommand(i_strDieuKien);
     }
     else
     {
         v_cb = new CCommandBuilder(this.m_Connection, i_ds, i_TableName);
         v_da.SelectCommand = v_cb.getSelectCommand(i_strDieuKien);
         v_da.SelectCommand.Transaction = m_Trans;
         v_da.SelectCommand.Connection = this.m_Connection;
     }
     v_da.SelectCommand.CommandTimeout = C_COMMAND_TIME_OUT;
     // Lấy dữ liệu từ DB
     try
     {
         v_da.Fill(i_ds, i_TableName);
     }
     catch (System.Exception v_e)
     {
         throw (v_e);
     }
     finally
     {
         v_cb = null;
         v_da = null;
         GC.Collect();
     }
 }