示例#1
0
 /// <summary>
 /// 查询是否有重复的动画信息(新规)
 /// </summary>
 /// <param name="anime"></param>
 /// <returns></returns>
 public Animation SearchRepeatAnimeInfo(Animation anime, AnimeCommand.Command ctr)
 {
     return dao.SearchRepeatAnimeInfo(anime, ctr);
 }
示例#2
0
        /// <summary>
        /// 通过动画No查找动画信息
        /// </summary>
        /// <param name="animeNo"></param>
        /// <returns></returns>
        public Animation GetAnimeFromAnimeNo(string animeNo)
        {
            string sqlcmd = @"SELECT TOP 1 *
                                FROM {0}
                                WHERE ANIME_NO = @animeNo
                                AND ENABLE_FLG = 1 ";

            Collection<DbParameter> paras = new Collection<DbParameter>();
            paras.Add(new SqlParameter("@animeNo", animeNo));

            DataSet ds = DbCmd.DoSelect(string.Format(sqlcmd, CommonConst.TableName.T_ANIME_TBL), paras);

            if (ds.Tables[0].Rows.Count == 0)
            {
                return null;
            }

            Animation anime = new Animation();
            anime.No = ds.Tables[0].Rows[0][0].ToString();
            anime.CNName = ds.Tables[0].Rows[0][1].ToString();
            anime.JPName = ds.Tables[0].Rows[0][2].ToString();
            anime.Nickname = ds.Tables[0].Rows[0][3].ToString();
            anime.status = Convert.ToInt32(ds.Tables[0].Rows[0][4]);
            anime.original = Convert.ToInt32(ds.Tables[0].Rows[0][5]);

            anime.playInfoList = this.GetPlayInfoListFromAnimeNo(anime.No);
            anime.characterList = this.GetCharacterListFromAnimeNo(anime.No);

            return anime;
        }
示例#3
0
        /// <summary>
        /// 删除选中单元格所在行的动画、角色、播放信息
        /// </summary>
        public void DeleteSelectedRowsAnimeInfo()
        {
            if (AnimationDataGridview.SelectedCells.Count == 0)
            {
                MsgBox.Show(MSG_COMMON_002);
                return;
            }

            DialogResult res = MsgBox.Show(MSG_MAIN_001);

            if (res == DialogResult.Yes)
            {
                try
                {
                    List<string> SelectedRowsAnimeNoList = GetSelectedRowsAnimeNoList();
                    foreach (string animeNo in SelectedRowsAnimeNoList)
                    {
                        Animation anime = new Animation(animeNo);
                        anime.Delete();
                    }

                    MsgBox.Show(MSG_COMMON_003);
                    DataGridViewReload();
                }
                catch (Exception ex)
                {
                    MsgBox.Show(MSG_COMMON_001, ex.Message);
                }
            }
        }
示例#4
0
        /// <summary>
        /// 查询是否有重复的动画信息
        /// </summary>
        /// <param name="anime"></param>
        /// <returns>重复的动画信息,如无则为null</returns>
        public Animation SearchRepeatAnimeInfo(Animation anime, AnimeCommand.Command ctr)
        {
            string sqlcmd = @"SELECT *
                                FROM {0}
                                WHERE ANIME_NO = @animeNo
                                    OR ANIME_CHN_NAME = @animeCNName
                                    OR ANIME_JPN_NAME = @animeJPName
                                    OR ANIME_NN = @nickname";

            Collection<DbParameter> paras = new Collection<DbParameter>();
            paras.Add(new SqlParameter("@animeNo", anime.No));
            paras.Add(new SqlParameter("@animeCNName", anime.CNName));
            paras.Add(new SqlParameter("@animeJPName", anime.JPName));
            paras.Add(new SqlParameter("@nickname", anime.Nickname));

            DataSet ds = DbCmd.DoSelect(string.Format(sqlcmd,CommonConst.TableName.T_ANIME_TBL), paras);

            if (ds.Tables[0].Rows.Count == 0)
            {
                return null;
            }

            if (ctr == AnimeCommand.Command.Update && ds.Tables[0].Rows[0][0].ToString().Equals(anime.No))
            {
                return null;
            }

            Animation repeatAnime = new Animation();
            repeatAnime.No = ds.Tables[0].Rows[0][0].ToString();
            repeatAnime.CNName = ds.Tables[0].Rows[0][1].ToString();
            repeatAnime.JPName = ds.Tables[0].Rows[0][2].ToString();
            repeatAnime.Nickname = ds.Tables[0].Rows[0][3].ToString();
            return repeatAnime;
        }
示例#5
0
        /// <summary>
        /// 更新动画信息
        /// </summary>
        /// <param name="anime"></param>
        /// <returns></returns>
        public bool UpdateAnime(Animation anime)
        {
            #region 播放信息更新

            //所有既存该动画的播放信息
            string sql1 = @"SELECT PLAYINFO_ID
                            FROM {0}
                            WHERE ANIME_NO = @animeNo";

            Collection<DbParameter> paras1 = new Collection<DbParameter>();
            paras1.Add(new SqlParameter("@animeNo",anime.No));

            DataSet ds1 = DbCmd.DoSelect(string.Format(sql1, CommonConst.TableName.T_PLAYINFO_TBL), paras1);
            List<int> ToDelPlayinfoIds = new List<int>();

            foreach (DataRow dr in ds1.Tables[0].Rows)
            {
                if (dr[0].ToString().Equals(string.Empty))
                {
                    continue;
                }
                ToDelPlayinfoIds.Add(Convert.ToInt32(dr[0]));
            }

            //播放信息全走查确认,更新
            foreach (PlayInfo pInfo in anime.playInfoList)
            {
                //确认播放是否存在
                string sql = @"SELECT PLAYINFO_ID
                                FROM {0}
                                WHERE PLAYINFO_ID = @playinfoID
                                AND ANIME_NO = @animeno ";

                Collection<DbParameter> paras = new Collection<DbParameter>();
                paras.Add(new SqlParameter("@playinfoID", pInfo.ID));
                paras.Add(new SqlParameter("@animeno", anime.No));

                try
                {
                    DataSet ds = DbCmd.DoSelect(string.Format(sql, CommonConst.TableName.T_PLAYINFO_TBL), paras);

                    if (ds.Tables[0].Rows.Count > 0 && Convert.ToInt32(ds.Tables[0].Rows[0][0]) == pInfo.ID)
                    {
                        pInfo.Update();

                        //将已更新的播放信息从待删除列表中移除
                        if (ToDelPlayinfoIds.Contains(pInfo.ID))
                        {
                            ToDelPlayinfoIds.Remove(pInfo.ID);
                        }
                    }
                    else
                    {
                        pInfo.Insert();
                    }

                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            //删除更新后不存在的播放信息
            foreach(int toDelPlayinfoId in ToDelPlayinfoIds)
            {
                PlayInfo pInfo = new PlayInfo(toDelPlayinfoId, anime.No);
                pInfo.Delete();
            }

            #endregion

            #region 角色信息更新

            //所有既存该动画的角色信息
            string sql2 = @"SELECT CHARACTER_NO
                            FROM {0}
                            WHERE ANIME_NO = @animeNo ";

            Collection<DbParameter> paras2 = new Collection<DbParameter>();
            paras2.Add(new SqlParameter("@animeNo", anime.No));

            DataSet ds2 = DbCmd.DoSelect(string.Format(sql2, CommonConst.TableName.T_CHARACTER_TBL), paras2);
            List<string> ToDelCharacterNos = new List<string>();

            foreach (DataRow dr in ds2.Tables[0].Rows)
            {
                if (dr[0].ToString().Equals(string.Empty))
                {
                    continue;
                }
                ToDelCharacterNos.Add(dr[0].ToString());
            }

            //角色信息全走查确认,更新
            foreach (Character cInfo in anime.characterList)
            {

                string sql = @"SELECT CHARACTER_NO
                                FROM {0}
                                WHERE CHARACTER_NO = @characterNo";

                Collection<DbParameter> paras = new Collection<DbParameter>();
                paras.Add(new SqlParameter("@characterNo", cInfo.No));

                try
                {
                    DataSet ds = DbCmd.DoSelect(string.Format(sql, CommonConst.TableName.T_CHARACTER_TBL), paras);
                    if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0][0].ToString().Equals(cInfo.No))
                    {
                        cInfo.Update();
                        //将已更新的角色信息从待删除列表中移除
                        if (ToDelCharacterNos.Contains(cInfo.No))
                        {
                            ToDelCharacterNos.Remove(cInfo.No);
                        }
                    }
                    else
                    {
                        cInfo.Insert();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            //删除更新后不存在的播放信息
            foreach (string toDelCharacterNo in ToDelCharacterNos)
            {
                Character cInfo = new Character(toDelCharacterNo);
                cInfo.Delete();
            }
            #endregion

            #region 基本信息更新
            //动画信息插入
            string sqlcmd = @"UPDATE {0} SET
                                    ANIME_CHN_NAME = @animeCNName
                                    ,ANIME_JPN_NAME = @animeJPName
                                    ,ANIME_NN = @animeNickName
                                    ,STATUS = @status
                                    ,ORIGINAL = @original
                                    ,LAST_UPDATE_DATETIME = GETDATE()
                               WHERE ANIME_NO = @animeNo
                             ";

            Collection<DbParameter> paras0 = new Collection<DbParameter>();
            paras0.Add(new SqlParameter("@animeNo", anime.No));
            paras0.Add(new SqlParameter("@animeCNName", anime.CNName));
            paras0.Add(new SqlParameter("@animeJPName", anime.JPName));
            paras0.Add(new SqlParameter("@animeNickName", anime.Nickname));
            paras0.Add(new SqlParameter("@status", anime.status));
            paras0.Add(new SqlParameter("@original", anime.original));

            try
            {
                DbCmd.DoCommand(string.Format(sqlcmd, CommonConst.TableName.T_ANIME_TBL), paras0);
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion
        }
示例#6
0
        /// <summary>
        /// 插入动画信息以及对应的播放、角色信息
        /// </summary>
        /// <param name="anime"></param>
        public bool InsertAnime(Animation anime)
        {
            //动画播放信息插入
            if (anime.playInfoList.Count > 0)
            {
                foreach (PlayInfo pInfo in anime.playInfoList)
                {
                    try
                    {
                        pInfo.Insert();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }

            //角色信息插入
            if (anime.characterList.Count > 0)
            {
                foreach (Character cInfo in anime.characterList)
                {
                    try
                    {
                        cInfo.Insert();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }

            //动画信息插入
            string sqlcmd = @"INSERT INTO {0} (
                                    ANIME_NO
                                    ,ANIME_CHN_NAME
                                    ,ANIME_JPN_NAME
                                    ,ANIME_NN
                                    ,STATUS
                                    ,ORIGINAL
                                    ,ENABLE_FLG
                                    ,LAST_UPDATE_DATETIME
                                    )
                                VALUES (
                                    @animeNo
                                    ,@animeCNName
                                    ,@animeJPName
                                    ,@animeNickName
                                    ,@status
                                    ,@original
                                    ,1
                                    ,GETDATE()
                                    )";

            Collection<DbParameter> paras = new Collection<DbParameter>();
            paras.Add(new SqlParameter("@animeNo", anime.No));
            paras.Add(new SqlParameter("@animeCNName", anime.CNName));
            paras.Add(new SqlParameter("@animeJPName", anime.JPName));
            paras.Add(new SqlParameter("@animeNickName", anime.Nickname));
            paras.Add(new SqlParameter("@status", anime.status));
            paras.Add(new SqlParameter("@original", anime.original));

            try
            {
                DbCmd.DoCommand(string.Format(sqlcmd, CommonConst.TableName.T_ANIME_TBL), paras);
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }