/// <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); }
/// <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(); } }
/// <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; }
/// <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); } } }