public List <T> Query(string query) { List <T> resultset = new List <T>(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, Connection.Get())) using (Npgsql.NpgsqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { dynamic entry = new ExpandoObject(); for (int i = 0; i < reader.FieldCount; i++) { Type type = reader.GetFieldType(i); entry[reader.GetName(i)] = Convert.ChangeType(reader.GetFieldValue <Object>(i), type); } resultset.Add(entry); } return(resultset); } }
public DataSet get_data_mmyy(string str, string tu, string den) { DataSet tmp = null; DateTime dt1 = StringToDate(tu); DateTime dt2 = StringToDate(den); int y1 = dt1.Year, m1 = dt1.Month; int y2 = dt2.Year, m2 = dt2.Month; int itu, iden; string mmyy = ""; bool be = true; Npgsql.NpgsqlConnection connct = new NpgsqlConnection(ConStr); connct.Open(); for (int i = y1; i <= y2; i++) { itu = (i == y1) ? m1 : 1; iden = (i == y2) ? m2 : 12; for (int j = itu; j <= iden; j++) { mmyy = j.ToString().PadLeft(2, '0') + i.ToString().Substring(2, 2); if (bMmyy(mmyy)) { sql = str.Replace("xxx", "medibv" + mmyy); sql = str.Replace("medibvmmyy", "medibv" + mmyy); using (Npgsql.NpgsqlCommand cmm = new NpgsqlCommand(sql, connct)) { // cmm.Connection.Open(); Npgsql.NpgsqlDataReader drd = null; try { drd = cmm.ExecuteReader(); if (tmp == null) { tmp = new DataSet(); } if (tmp.Tables.Count == 0 && drd.FieldCount > 0) { tmp.Tables.Add("Table"); } if (tmp.Tables.Count > 0) { for (int ia = 0; ia < drd.FieldCount; ia++) { if (!tmp.Tables[0].Columns.Contains(drd.GetName(ia))) { tmp.Tables[0].Columns.Add(drd.GetName(ia), drd.GetFieldType(ia)); } } while (drd.Read()) { DataRow ndtr = tmp.Tables[0].NewRow(); for (int ie = 0; ie < drd.FieldCount; ie++) { ndtr[drd.GetName(ie)] = drd[ie]; } tmp.Tables[0].Rows.Add(ndtr); } } } catch { } finally { if (drd != null) { drd.Close(); drd.Dispose(); } } } } } } connct.Close(); return(tmp); }