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;
        }
        //Lay ve tham so dung de chua loi do sql server tra ve
        //Protected Function getErrorParameter() As SqlClient.SqlParameter
        //    Dim v_sqlPara As New SqlClient.SqlParameter()
        //    v_sqlPara = New SqlClient.SqlParameter("@ErrorCode", System.Data.SqlDbType.Int)
        //    v_sqlPara.Direction = ParameterDirection.Output
        //    Return v_sqlPara
        //End Function
        //Dat cac gia tri cho cac thuoc tinh
        protected void set_value_4_para(SqlParameter i_obj_sqlpara, 
            CProperty i_obj_property,
            DataRow i_dr_value)
        {
            Type v_obj_type = i_dr_value.Table.Columns[i_obj_property.getName()].DataType;

            switch (v_obj_type.ToString())
            {
                case "System.String":
                    if (i_dr_value.IsNull(i_obj_property.getName()))
                    {
                        i_obj_sqlpara.Value = System.Convert.DBNull;
                    }
                    else
                    {
                        if (i_dr_value[i_obj_property.getName()].ToString().Trim().Length == 0)
                        {
                            i_obj_sqlpara.Value = System.Convert.DBNull;
                        }
                        else
                        {
                            i_obj_sqlpara.Value = i_dr_value[i_obj_property.getName()];
                        }
                    }
                    break;
                case "System.DateTime":
                    if (i_dr_value.IsNull(i_obj_property.getName()))
                    {
                        i_obj_sqlpara.Value = System.Convert.DBNull;
                    }
                    else
                    {
                        if (Convert.ToDateTime(i_dr_value[i_obj_property.getName()])
                            == Convert.ToDateTime("01/01/1900"))
                        {
                            i_obj_sqlpara.Value = System.Convert.DBNull;
                        }
                        else
                        {
                            i_obj_sqlpara.Value = i_dr_value[i_obj_property.getName()];
                        }
                    }
                    break;
                default:
                    i_obj_sqlpara.Value = i_dr_value[i_obj_property.getName()];
                    break;
            }
        }