private void btnDividend_Click(object sender, EventArgs e) { using (Utility.DbUtil db = new Utility.DbUtil()) { // テーブルを作成 List <decimal> tblLst = db.DBSelect <decimal>("SELECT COUNT(*) CNT FROM sqlite_master WHERE type = 'table' AND name = 'dividend'"); if (tblLst[0] > 0) { db.DBExecuteSQL("DROP TABLE dividend "); } string sql = @"CREATE TABLE dividend ( OrderNo NUMERIC ,StockCode NUMERIC ,Market TEXT ,CompanyName TEXT ,Dividend NUMERIC ,DividendYield NUMERIC ,DetailUrl TEXT ) "; db.DBExecuteSQL(sql); List <Utility.DividendEntity> list = new List <Utility.DividendEntity>(); Utility.FinanceUtil finance = new Utility.FinanceUtil(); list = finance.GetDividendEntityList(); string insertSql = @"INSERT INTO dividend ( OrderNo ,StockCode ,Market ,CompanyName ,Dividend ,DividendYield ,DetailUrl ) VALUES ( :OrderNo ,:StockCode ,:Market ,:CompanyName ,:Dividend ,:DividendYield ,:DetailUrl )"; db.DBInsert(insertSql, list); List <Utility.DividendEntity> dividend = db.DBSelect <Utility.DividendEntity>("SELECT * FROM dividend "); this.dgvStockPrice.DataSource = dividend; } }
private async Task UpdateDividend() { Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); this.txtUpdateStatus.Text = ""; this.txtUpdateStatus.Text += "配当利回り取得開始" + Environment.NewLine; // 情報の取得 List <Utility.DividendEntity> list = new List <Utility.DividendEntity>(); await Task.Run(() => { Utility.FinanceUtil finance = new Utility.FinanceUtil(); list = finance.GetDividendEntityList(); }); sw.Stop(); this.txtUpdateStatus.Text += "配当利回り取得終了 " + sw.Elapsed.ToString() + Environment.NewLine; sw.Restart(); this.txtUpdateStatus.Text += "配当利回り更新開始" + Environment.NewLine; await Task.Run(() => { using (Utility.DbUtil db = new Utility.DbUtil()) { // 削除 db.DBExecuteSQL("DELETE FROM dividend"); // 登録 string insertSql = @"INSERT INTO dividend ( OrderNo ,StockCode ,Market ,CompanyName ,Dividend ,DividendYield ,DetailUrl ) VALUES ( :OrderNo ,:StockCode ,:Market ,:CompanyName ,:Dividend ,:DividendYield ,:DetailUrl )"; db.DBInsert(insertSql, list); db.DBExecuteSQL("DELETE FROM dividend WHERE StockCode NOT IN (SELECT TargetStockCode From targetcode) "); } }); sw.Stop(); this.txtUpdateStatus.Text += "配当利回り更新終了 " + sw.Elapsed.ToString() + Environment.NewLine; }