public static DataTable GetDT(int depth, DBMeta meta, DataTable data) { string dtTablePrefix = "depth_" + depth.ToString(); DataTable dt = new DataTable(dtTablePrefix + meta.FileName.Replace(".", "_")); dt.Columns.Add("FileType"); dt.Columns.Add("DBName"); dt.Columns.Add("FileName"); dt.Columns.Add("LineNo"); dt.Columns.Add("MatchScore"); if (meta.fileType == FileType.csv) { string[] flds = meta.HeaderRecord.Split(','); foreach (string f in flds) { dt.Columns.Add(f); } foreach (DataRow dr in data.Rows) { if (dr["data_value"] == null) { continue; } string dv = dr["data_value"].ToString(); string[] dva = dv.Split(','); DataRow drt = dt.NewRow(); drt["FileType"] = "CSV"; drt["DBName"] = meta.DBName; drt["FileName"] = meta.FileName; drt["LineNo"] = dr["line_number"].ToString(); drt["MatchScore"] = dr["MatchScore"].ToString(); for (int i = 0; i < flds.Length; i++) { if (i >= dva.Length) { break; } drt[flds[i]] = dva[i]; } dt.Rows.Add(drt); } } else if (meta.fileType == FileType.tab) { string[] flds = meta.HeaderRecord.Split('\t'); foreach (string f in flds) { dt.Columns.Add(f); } foreach (DataRow dr in data.Rows) { if (dr["data_value"] == null) { continue; } string dv = dr["data_value"].ToString(); string[] dva = dv.Split('\t'); DataRow drt = dt.NewRow(); drt["FileType"] = "TAB"; drt["DBName"] = meta.DBName; drt["FileName"] = meta.FileName; drt["LineNo"] = dr["line_number"].ToString(); drt["MatchScore"] = dr["MatchScore"].ToString(); for (int i = 0; i < flds.Length; i++) { if (i >= dva.Length) { break; } drt[flds[i]] = dva[i]; } dt.Rows.Add(drt); } } else { dt.Columns.Add("FirstLineData"); dt.Columns.Add("Text"); foreach (DataRow dr in data.Rows) { if (dr["data_value"] == null) { continue; } string dv = dr["data_value"].ToString(); DataRow drt = dt.NewRow(); drt["FileType"] = "TAB"; drt["DBName"] = meta.DBName; drt["FileName"] = meta.FileName; drt["LineNo"] = dr["line_number"].ToString(); drt["MatchScore"] = dr["MatchScore"].ToString(); drt["FirstLineData"] = meta.HeaderRecord; drt["Text"] = dv; dt.Rows.Add(drt); } } return(dt); }
public static void Init(string dbServerConnect) { Console.WriteLine("Baleen Query Start Up"); SqlConnection c = null; try { c = new SqlConnection(dbServerConnect); c.Open(); SqlDataAdapter sda = new SqlDataAdapter(sqlAllDB, c); DataTable dt = new DataTable(); sda.Fill(dt); baleenDB = dt; baleenMeta = new List <DBMeta>(); foreach (DataRow dr in dt.Rows) { string db = dr[0].ToString(); Console.WriteLine(db); string sql = sqlMeta.Replace("<<DB>>", db); DataTable dtm = new DataTable(); sda = new SqlDataAdapter(sql, c); sda.Fill(dtm); foreach (DataRow drm in dtm.Rows) { DBMeta dm = new DBMeta(); dm.DBName = db; try { dm.FileName = drm[0].ToString(); } catch { } try { dm.FirstLine = long.Parse(drm[1].ToString()); } catch { } try { dm.MinLoadDate = DateTime.Parse(drm[2].ToString()); } catch { } try { dm.MaxLoadDate = DateTime.Parse(drm[3].ToString()); } catch { } try { dm.TotalLines = long.Parse(drm[4].ToString()); } catch { } try { dm.HeaderRecord = drm[5].ToString(); } catch { } baleenMeta.Add(dm); } } Dictionary <string, string> subs = new Dictionary <string, string>(); foreach (DBMeta dm in baleenMeta) { subs[dm.Subject] = ""; } AvailableSubjects = subs.Keys.ToList <string>(); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (c != null) { c.Close(); } } }