示例#1
0
        //------------------------------------------------------------------
        //  Retrieve data values from database and put them in an array list
        //  of objects, and return it. This is used when executing a SELECT
        //  query
        //------------------------------------------------------------------
        public List <Object> getValues(string queryString)
        {
            List <Object> results = new List <Object>();

            configureConnection();
            using (conn)
            {
                System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand(queryString, conn);
                try
                {
                    conn.Open();
                    System.Data.OleDb.OleDbDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Object[] nextRow = new Object[reader.FieldCount];
                        reader.GetValues(nextRow);
                        results.Add(nextRow);
                    }

                    return(results);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    return(null);
                }
            }
        }
示例#2
0
 private void updateSpeciesFromTreeTable()
 {
     fieldSpcd.Clear();
     using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(dbLc))
     {
         con.Open();
         string sql = "SELECT DISTINCT PLT_CN, SPCD FROM TREE WHERE DIA >= 5 and SPCD > 0";
         if (lt5)
         {
             sql = "SELECT DISTINCT PLT_CN, SPCD FROM TREE WHERE SPCD > 0";
         }
         System.Data.OleDb.OleDbCommand    oleCom = new System.Data.OleDb.OleDbCommand(sql, con);
         System.Data.OleDb.OleDbDataReader oleRd  = oleCom.ExecuteReader();
         while (oleRd.Read())
         {
             object[] vls = new object[2];
             oleRd.GetValues(vls);
             string pcn = vls[0].ToString().ToUpper();
             if (fieldPltCn.Contains(pcn))
             {
                 string spcd = vls[1].ToString();
                 fieldSpcd.Add(spcd);
             }
         }
         oleRd.Close();
         if (seedlings)
         {
             sql = "SELECT DISTINCT PLT_CN, SPCD FROM SEEDLING";
             oleCom.CommandText = sql;
             oleRd = oleCom.ExecuteReader();
             while (oleRd.Read())
             {
                 object[] vls = new object[2];
                 oleRd.GetValues(vls);
                 string pcn = vls[0].ToString().ToUpper();
                 if (fieldPltCn.Contains(pcn))
                 {
                     string spcd = vls[1].ToString();
                     fieldSpcd.Add(spcd);
                 }
             }
         }
         con.Close();
     }
     populateSpeciesList();
     populateDataTable();
 }
示例#3
0
 private void createAndFillRegenRef()
 {
     using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(dbLc))
     {
         con.Open();
         //Console.WriteLine("opened the database");
         string sql = "SELECT PLT_CN, SUBP, SPCD, TREECOUNT FROM SEEDLING";
         System.Data.OleDb.OleDbCommand    oleCom = new System.Data.OleDb.OleDbCommand(sql, con);
         System.Data.OleDb.OleDbDataReader oleRd  = oleCom.ExecuteReader();
         while (oleRd.Read())
         {
             object[] vls = new object[4];
             oleRd.GetValues(vls);
             string pltCn = vls[0].ToString();
             string subp  = vls[1].ToString();
             if (SubPlotField == "" || SubPlotField == null)
             {
                 subp = "0";
             }
             string linkVl = pltCn + "_" + subp;
             //Console.WriteLine("Link = " + linkVl.ToString());
             if (unPlots.Contains(linkVl))
             {
                 string spcd  = vls[2].ToString();
                 string stcd  = "1";
                 string grpCd = spcd;
                 if (groupstatuscode)
                 {
                     grpCd = spcd + "_" + stcd;
                 }
                 if (grp)
                 {
                     spcd = findGrp(grpCd);
                 }
                 rUnSp.Add(spcd);
                 int    tCnt = System.Convert.ToInt32(vls[3]);
                 string lk   = linkVl + "_" + spcd.ToString();
                 int    vlOut;
                 if (rgDic.TryGetValue(lk, out vlOut))
                 {
                     rgDic[lk] = vlOut + tCnt;
                 }
                 else
                 {
                     rgDic.Add(lk, tCnt);
                 }
             }
         }
         oleRd.Close();
         con.Close();
     }
 }
示例#4
0
        static int SilentlyReadAllRows(System.Data.OleDb.OleDbDataReader reader)
        {
            int rowCount = 0;

            while (reader.Read())
            {
                ++rowCount;
                object[] values = new object[reader.FieldCount];
                reader.GetValues(values);
            }

            return(rowCount);
        }
示例#5
0
        private void populateSpeciesDictionary()
        {
            int pltCnt = fieldPltCn.Count;

            using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(dbLc))
            {
                con.Open();
                string sql = "SELECT SPCD, COMMON_NAME FROM REF_SPECIES ORDER BY SPCD";
                System.Data.OleDb.OleDbCommand    oleCom = new System.Data.OleDb.OleDbCommand(sql, con);
                System.Data.OleDb.OleDbDataReader oleRd  = oleCom.ExecuteReader();
                while (oleRd.Read())
                {
                    object[] vls = new object[2];
                    oleRd.GetValues(vls);
                    string jVl = vls[0].ToString() + " | " + vls[1].ToString();
                    spDic.Add(vls[0].ToString(), vls[1].ToString());
                    //lstSpecies.Items.Add(jVl);
                }
                oleRd.Close();
                con.Close();
            }
        }
示例#6
0
        private string[] getStatusCodes()
        {
            HashSet <string> statusCodeHash = new HashSet <string>();

            using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(dbLc))
            {
                con.Open();
                string sql = "SELECT DISTINCT STATUSCD FROM TREE";
                System.Data.OleDb.OleDbCommand    oleCom = new System.Data.OleDb.OleDbCommand(sql, con);
                System.Data.OleDb.OleDbDataReader oleRd  = oleCom.ExecuteReader();
                while (oleRd.Read())
                {
                    object[] vls = new object[1];
                    oleRd.GetValues(vls);
                    string spcd = vls[0].ToString();
                    statusCodeHash.Add(spcd);
                }
                oleRd.Close();
                con.Close();
            }
            return(statusCodeHash.ToArray());
        }
示例#7
0
        private void createAndFillTreesRef()
        {
            //DataTable dtTrees = null;
            using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(dbLc))
            {
                con.Open();
                //Console.WriteLine("opened the database");
                string sql = "SELECT SPCD, JENKINS_TOTAL_B1, JENKINS_TOTAL_B2, JENKINS_STEM_WOOD_RATIO_B1, JENKINS_STEM_WOOD_RATIO_B2, JENKINS_STEM_BARK_RATIO_B1, JENKINS_STEM_BARK_RATIO_B2, JENKINS_FOLIAGE_RATIO_B1, JENKINS_FOLIAGE_RATIO_B2 FROM REF_SPECIES";
                System.Data.OleDb.OleDbCommand    oleCom = new System.Data.OleDb.OleDbCommand(sql, con);
                System.Data.OleDb.OleDbDataReader oleRd  = oleCom.ExecuteReader();
                while (oleRd.Read())
                {
                    object[] vls = new object[9];
                    oleRd.GetValues(vls);
                    bmDic.Add(vls[0].ToString(), vls);
                }
                oleRd.Close();
                sql = "SELECT CN, PLT_CN, SUBP, TREE, SPCD, DIA, HT, STATUSCD FROM TREE WHERE DIA >= 0 and SPCD > 0";
                oleCom.CommandText = sql;
                oleRd = oleCom.ExecuteReader();
                while (oleRd.Read())
                {
                    object[] vls = new object[8];
                    oleRd.GetValues(vls);
                    updateObjectVls(vls);
                    string pltCn = vls[1].ToString();
                    string subp  = vls[2].ToString();
                    if (SubPlotField == "" || SubPlotField == null)
                    {
                        subp = "0";
                    }
                    string linkVl = pltCn + "_" + subp;
                    //Console.WriteLine(linkVl);
                    if (unPlots.Contains(linkVl))
                    {
                        //Console.WriteLine(linkVl);
                        string spcd = vls[4].ToString();
                        //adding in live and dead
                        string stcd  = vls[7].ToString();
                        string grpCd = spcd;
                        if (groupstatuscode)
                        {
                            grpCd = spcd + "_" + stcd;
                        }
                        object[] bmVls;
                        if (bmDic.TryGetValue(spcd, out bmVls))
                        {
                            if (grp)
                            {
                                spcd = findGrp(grpCd);                     //findGrp(spcd);
                            }
                            double diam = System.Convert.ToDouble(vls[5]); //diameter
                            Dictionary <string, object[]> cDic;
                            if (diam < 5)
                            {
                                //Console.WriteLine("Adding to less than 5");
                                cDic = sVlDic;
                                sUnSp.Add(spcd);
                            }
                            else
                            {
                                //Console.WriteLine("greater than 5");
                                cDic = vlDic;
                                unSp.Add(spcd);
                            }

                            string   lk = linkVl + "_" + spcd.ToString();
                            object[] treeVls;
                            if (cDic.TryGetValue(lk, out treeVls))
                            {
                            }
                            else
                            {
                                treeVls     = new object[12];
                                treeVls[0]  = pltCn;
                                treeVls[1]  = subp;
                                treeVls[2]  = spcd;
                                treeVls[3]  = 0; //dbh
                                treeVls[4]  = 0; //AGB
                                treeVls[5]  = 0; //StemAGB
                                treeVls[6]  = 0; //ButtAGB
                                treeVls[7]  = 0; //FoliageAGB
                                treeVls[8]  = 0; //TopAGB
                                treeVls[9]  = 0; //BAA
                                treeVls[10] = 0; //TPA
                                treeVls[11] = 0; //MeanHT
                                cDic.Add(lk, treeVls);
                            }
                            //Console.WriteLine(System.Convert.ToDouble(vls[5]).ToString());

                            double ht = System.Convert.ToDouble(vls[6]);                                                                                      //height
                            treeVls[3] = System.Convert.ToDouble(treeVls[3]) + diam;
                            double j_tbm  = Math.Exp(System.Convert.ToDouble(bmVls[1]) + System.Convert.ToDouble(bmVls[2]) * Math.Log(diam * 2.54)) * 2.2046; //AGB
                            double j_sbm  = j_tbm * Math.Exp(System.Convert.ToDouble(bmVls[3]) + System.Convert.ToDouble(bmVls[4]) / (2.54 * diam));          //SAGB
                            double j_bbm  = j_tbm * Math.Exp(System.Convert.ToDouble(bmVls[5]) + System.Convert.ToDouble(bmVls[6]) / (2.54 * diam));          //BAGB
                            double j_fbm  = j_tbm * Math.Exp(System.Convert.ToDouble(bmVls[7]) + System.Convert.ToDouble(bmVls[8]) / (2.54 * diam));          //FAGB
                            double j_tpbm = j_tbm - j_sbm - j_bbm - j_fbm;                                                                                    //TPAGB
                            treeVls[4]  = System.Convert.ToDouble(treeVls[4]) + j_tbm;
                            treeVls[5]  = System.Convert.ToDouble(treeVls[5]) + j_sbm;
                            treeVls[6]  = System.Convert.ToDouble(treeVls[6]) + j_bbm;
                            treeVls[7]  = System.Convert.ToDouble(treeVls[7]) + j_fbm;
                            treeVls[8]  = System.Convert.ToDouble(treeVls[8]) + j_tpbm;
                            treeVls[9]  = System.Convert.ToDouble(treeVls[9]) + 0.005454 * Math.Pow(diam, 2); //BA
                            treeVls[10] = System.Convert.ToDouble(treeVls[10]) + 1.0;                         //trees
                            treeVls[11] = System.Convert.ToDouble(treeVls[11]) + ht;
                        }
                    }
                }
                oleRd.Close();
                con.Close();
            }
        }