/// <summary>
        /// 数据插入
        /// </summary>
        public bool Insert(ArtistSeries artist)
        {
            if (artist.Mapping.Count > 0)
            {
                foreach (ArtistMappingSeries map in artist.Mapping)
                {
                    if (!map.Insert())
                    {
                        return false;
                    }
                }
            }

            return dao.Insert(artist);
        }
示例#2
0
        /// <summary>
        /// 接受选择的艺术家
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void SelectArtistAccept(object sender, EventArgs e)
        {
            SelectArtist target = (SelectArtist)sender;
            object targetkey = target.ReturnResult;

            //正常返回
            if (Convert.ToInt32(targetkey.ToString()) > 0)
            {
                ArtistSeries newartist = new ArtistSeries((int)targetkey);
                string oldArtistId = string.Empty;

                foreach (MusicDataSet.ArtistInfoRow oldartist in ArtistCurInfo.Rows)
                {
                    oldArtistId = oldartist.ArtistID;
                }

                //艺术家未变化
                if (oldArtistId.Equals(newartist.Id.ToString()))
                {
                    return;
                }
                //新艺术家不在DB中:错误,应在确认时即加入DB
                else if (!newartist.IsIDExists())
                {
                    throw new Exception("未预料的艺术家编号:艺术家编号在数据库中不存在。");
                }
                //选中的艺术家原本即在DB中,或已加入DB
                else
                {
                    bool isExistInArtistInfoFlg = false;
                    foreach (MusicDataSet.ArtistInfoRow artistRow in ArtistInfo.Rows)
                    {
                        if(artistRow.ArtistID.Contains(newartist.Id.ToString()))
                        {
                            isExistInArtistInfoFlg = true;
                        }
                    }

                    //未在ArtistInfo中
                    if (!isExistInArtistInfoFlg)
                    {
                        DataTable artists = service.GetArtistInfoInArtist(newartist.Id);
                        foreach (DataRow dr in artists.Rows)
                        {
                            ArtistInfo.ImportRow(dr);
                            ArtistInfo.AcceptChanges();
                            break;
                        }
                    }

                    var targetArtist = from artist in this.ArtistInfo
                                       where artist.ArtistID.Equals(newartist.Id.ToString())
                                       select artist;

                    foreach (MusicDataSet.ArtistInfoRow artistRow in targetArtist)
                    {
                        ArtistCurInfo.Clear();
                        ArtistCurInfo.ImportRow(artistRow);
                        ArtistCurInfo.AcceptChanges();
                        break;
                    }

                }

                //载入修改列表过程
                //1.获取当前曲目ID
                string curTrackId = string.Empty;

                foreach (MusicDataSet.TrackInfoRow track in TrackCurInfo.Rows)
                {
                    curTrackId = track.TrackID;
                    break;
                }

                //2.修改TrackInfo中对应信息
                foreach (MusicDataSet.TrackInfoRow track in TrackInfo.Rows)
                {
                    if (track.TrackID.Equals(curTrackId))
                    {
                        track.ArtistID = newartist.Id.ToString();
                        track.ArtistName = newartist.Name;
                        track.UpdateFlg = true;
                        break;
                    }
                }
                TrackInfo.AcceptChanges();

                //3.从TrackInfo获取当前曲目
                var targetTrack = from track in this.TrackInfo
                                  where track.TrackID.Equals(curTrackId)
                                  select track;

                TrackCurInfo.Clear();

                foreach (MusicDataSet.TrackInfoRow trackRow in targetTrack)
                {
                    TrackCurInfo.ImportRow(trackRow);
                    break;
                }
                TrackCurInfo.AcceptChanges();

                ShowDicDataGridViewInfo();
            }
        }
示例#3
0
        /// <summary>
        /// 数据插入
        /// </summary>
        public bool Insert(ArtistSeries artist)
        {
            StringBuilder cmd1 = new StringBuilder();
            StringBuilder cmd2 = new StringBuilder();
            StringBuilder sqlcmd = new StringBuilder();

            Collection<DbParameter> paras = new Collection<DbParameter>();

            if (artist.Description != null && !artist.Description.Trim().Equals(string.Empty))
            {
                cmd1.Append(",DESCRIPTION");
                cmd2.Append(",@Description");
                paras.Add(new SqlParameter("@Description", artist.Description));
            }

            sqlcmd.Append(@"INSERT INTO {0} (
                                  ARTIST_ID
                                 ,ARTIST_NAME
                                 ,GENDER_ID
                                 ,CHARACTER_FLG
                                 ,CV_FLG
                                 ,SINGER_FLG
                                 ,ENABLE_FLG
                                 ,LAST_UPDATE_DATETIME
                                 ");
            sqlcmd.Append(cmd1);
            sqlcmd.Append(@")
                            VALUES (
                                    @id
                                    ,@name
                                    ,@gender
                                    ,@charaFlg
                                    ,@cvFlg
                                    ,@singerFlg
                                    ,1
                                    ,GETDATE() ");
            sqlcmd.Append(cmd2);
            sqlcmd.Append(@")");
            paras.Add(new SqlParameter("@id", artist.Id));
            paras.Add(new SqlParameter("@name", artist.Name));
            paras.Add(new SqlParameter("@gender", artist.Gender));
            paras.Add(new SqlParameter("@charaFlg", artist.IsCharacter));
            paras.Add(new SqlParameter("@cvFlg", artist.IsCV));
            paras.Add(new SqlParameter("@singerFlg", artist.IsSinger));

            DbCmd.DoCommand(string.Format(sqlcmd.ToString(), CommonConst.TableName.T_ARTIST_TBL), paras);

            return true;
        }
示例#4
0
        /// <summary>
        /// 设置艺术家单元格样式
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="artistName"></param>
        private void SetArtistCellStyle(DataGridViewCell cell,string artistName)
        {
            if(artistName ==string.Empty)
            {
                dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.ExistInDB);
                return;
            }

            if (newArtistDic.ContainsKey(artistName))
                {
                    //在dic中存在
                    switch (newArtistDic[artistName])
                    {
                        case DataMappingType.Type.New:
                            dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.New);
                            break;
                        case DataMappingType.Type.ExistInDB:
                            dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.ExistInDB);
                            break;
                        case DataMappingType.Type.LikeInDB:
                            dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.LikeInDB);
                            break;
                    }
                }
                else
                {
                    ArtistSeries artist = new ArtistSeries(artistName);
                    if (artist.Id > 0)
                    {
                        //不在dic,在DB中存在名称完全相同,加入dic
                        dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.ExistInDB);
                        newArtistDic.Add(artist.Name, DataMappingType.Type.ExistInDB);
                    }
                    else if (artist.IsFormattedNameExists() > 0)
                    {
                        //不在dic,在DB中存在名称整形后相同,需要匹配
                        dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.LikeInDB);
                        newArtistDic.Add(artist.Name, DataMappingType.Type.LikeInDB);
                    }
                    else
                    {
                        //不在DB->发番,加入dic
                        newArtistDic.Add(artist.Name, DataMappingType.Type.New);
                        dgvStyle.SetMappingTypeBackColor(cell, DataMappingType.Type.New);
                    }
                }
        }