Exemple #1
0
        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);
                }
        }
Exemple #2
0
        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);
        }