/// <summary> /// 检索数据并保存到oracle库中 /// </summary> /// <param name="start"></param> /// <param name="end"></param> public void SearchDataToOracle(int start, int end) { DataTable dt_articles = OracleCon.SelectArticles(start, end); if (dt_articles.Rows.Count < 1) { SetTitleIndex(end.ToString()); return; } try { foreach (DataRow row in dt_articles.Rows) { string title = row["CITATION_TITLE"].ToString(); string id = row["INTERNAL_ID"].ToString(); int.TryParse(id, out nowIndex); if (string.IsNullOrEmpty(title)) { SetTitleIndex(id); OracleCon.SaveMatchDataError(title, id, "title is null"); continue; } if (dbSearcher.SearchOracle(title, id)) { SetTitleIndex(id); continue; } bool GetSearcher = false; WosSearcher tmpSearcher = null; while (!GetSearcher) { for (int i = 0; i < searchers.Count; i++) { if (!searchers[i].isbusy) { tmpSearcher = searchers[i]; GetSearcher = true; tmpSearcher.isbusy = true; break; } } } new DealTitle(M_DealTitle).BeginInvoke(title, id, tmpSearcher, null, null); } } catch (Exception e) { Logs.WriteLog(string.Format("{0}\r\n{1}", "SearchDataToOracle:" + nowIndex, e.Message)); return; } }