protected void setParaCollection4CmdInsertLog(System.Data.SqlClient.SqlCommand i_Cmd, 
            decimal i_dc_id_nguoi_dung,
            string i_str_ten_tham_so)
        {
            System.Data.DataColumn v_Column = default(System.Data.DataColumn);
            System.Data.DataRow v_Row = default(System.Data.DataRow);
            System.Data.SqlClient.SqlParameter v_Para = default(System.Data.SqlClient.SqlParameter);
            v_Row = m_ds.Tables[m_TableName].Rows[0];

            CProperty v_Property = new CProperty();
            foreach (System.Data.DataColumn tempLoopVar_v_Column in m_ds.Tables[m_TableName].Columns)
            {
                v_Column = tempLoopVar_v_Column;
                v_Property.SetValues(v_Column.DataType, v_Column.ColumnName);
                //tao cac tham so truyen vao cho Stored Procedure
                v_Para = v_Property.CreateSQLValuePara();
                //v_Para.Value = v_Row(v_Property.getName())
                set_value_4_para(v_Para, v_Property, v_Row);
                i_Cmd.Parameters.Add(v_Para);
            }

            //' LinhDH 09/12/2012: Add parameter có insert Log
            v_Property.SetValues(Type.GetType("Decimal"), i_str_ten_tham_so);
            //tao cac tham so truyen vao cho Stored Procedure
            v_Para = v_Property.CreateSQLValuePara();
            //v_Para.Value = v_Row(v_Property.getName())
            set_value_4_paraInsertLog(v_Para, v_Property, i_dc_id_nguoi_dung);
            i_Cmd.Parameters.Add(v_Para);
        }
        public System.Data.SqlClient.SqlCommand getDeleteCommand()
        {
            System.Data.SqlClient.SqlCommand v_Cmd = new System.Data.SqlClient.SqlCommand();
            System.Data.DataColumn v_Column = default(System.Data.DataColumn);
            System.Data.DataRow v_Row = default(System.Data.DataRow);
            System.Data.SqlClient.SqlParameter v_Para = default(System.Data.SqlClient.SqlParameter);

            v_Row = m_ds.Tables[m_TableName].Rows[0];

            CProperty v_Property = new CProperty();

            foreach (System.Data.DataColumn tempLoopVar_v_Column in m_ds.Tables[m_TableName].PrimaryKey)
            {
                v_Column = tempLoopVar_v_Column;
                v_Property.SetValues(v_Column.DataType, v_Column.ColumnName);
                v_Para = v_Property.CreateSQLValuePara();
                v_Para.Value = v_Row[v_Property.getName()];
                v_Cmd.Parameters.Add(v_Para);
            }

            //Gan cac thuoc tinh cua command
            v_Cmd.Connection = m_cnn;
            v_Cmd.CommandType = CommandType.StoredProcedure;
            v_Cmd.CommandText = c_PRPrefix + m_TableName + "_Delete";
            return v_Cmd;
        }
        protected void setParaCollection4Cmd(System.Data.SqlClient.SqlCommand i_Cmd)
        {
            System.Data.DataColumn v_Column = default(System.Data.DataColumn);
            System.Data.DataRow v_Row = default(System.Data.DataRow);
            System.Data.SqlClient.SqlParameter v_Para = default(System.Data.SqlClient.SqlParameter);
            v_Row = m_ds.Tables[m_TableName].Rows[0];

            CProperty v_Property = new CProperty();
            foreach (System.Data.DataColumn tempLoopVar_v_Column in m_ds.Tables[m_TableName].Columns)
            {
                v_Column = tempLoopVar_v_Column;
                v_Property.SetValues(v_Column.DataType, v_Column.ColumnName);
                //tao cac tham so truyen vao cho Stored Procedure
                v_Para = v_Property.CreateSQLValuePara();
                //v_Para.Value = v_Row(v_Property.getName())
                set_value_4_para(v_Para, v_Property, v_Row);
                i_Cmd.Parameters.Add(v_Para);
            }
            //i_Cmd.Parameters.Add(getErrorParameter())
        }