private static void UpdateTuner() { try { using (Sql sql = new Sql(true)) { Log.Write("チューナを更新しています..."); Tuner.Update(sql); Log.Write("サービスを更新しています..."); bool arg_37_0 = Program.UpdateService(sql); Log.Write("余分なデータを削除しています..."); Program.Cleanup(sql); if (arg_37_0) { MessageBox.Show("サービスが重複しています。\nこのままでも使用できますが、TVTestのチャンネルスキャンで同じ放送局を1つを残して他は無効(チェックを外す)にすることをおすすめします。", AppData.AppName); } } Log.Write("チューナ更新が完了しました。"); } catch (Exception ex) { MessageBox.Show("チューナの読み込みに失敗しました。[詳細]" + ex.Message, AppData.AppName); throw; } }
static void UpdateTuner() { try { using (var sql = new Sql(true)) { Log.Write("チューナを更新しています..."); Tuner.Update(sql); //チューナ更新(DB更新) //サービス更新 Log.Write("サービスを更新しています..."); sql.Text = "delete from service"; sql.Execute(); var tuners = new List <Tuner>(); sql.Text = "select * from tuner group by driver "; using (var table = sql.GetTable()) { while (table.Read()) { tuners.Add(new Tuner(table)); } } bool dup = false; foreach (Tuner tuner in tuners) { try { tuner.GetServices(sql); //サービスをTVTestから読み込み } catch (DupServiceException) { dup = true; } } //以前から残っている番組で、新しくなったサービスにないものは削除する sql.Text = "delete from event where fsid not in (select fsid from service group by fsid)"; sql.Execute(); //同ユーザ番組表 sql.Text = "delete from user_epg where fsid not in (select fsid from service group by fsid)"; sql.Execute(); //同予約 sql.Text = "delete from record where fsid not in (select fsid from service group by fsid)"; sql.Execute(); //予約でチューナがないものは削除 sql.Text = "delete from record where tuner not in (select name from tuner)"; sql.Execute(); if (dup) { MessageBox.Show("サービスが重複しています。\nこのままでも使用できますが、TVTestのチャンネルスキャンで同じ放送局を1つを残して他は無効(チェックを外す)にすることをおすすめします。", Program.Logo); } } Log.Write("チューナ更新が完了しました。"); } catch (Exception e) { MessageBox.Show("チューナの読み込みに失敗しました。[詳細]" + e.Message, Program.Logo); throw; } }