/// <summary>
        /// 转换表中的值
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DataTable Convert_TableValue(DataTable dt)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Columns.Count == 4)                 //根据输出列数判断是否是Soil
                {
                    if (dt.Columns[0].ColumnName == "作业站") //根据列名判断作物范围
                    {
                        dt.Rows[i][0] = DataBaseOperate.getVillName(dt.Rows[i][0].ToString());
                    }
                    else if (dt.Columns[0].ColumnName == "作业区")
                    {
                        dt.Rows[i][0] = DataBaseOperate.getTownName(dt.Rows[i][0].ToString());
                    }
                    string date_vale = ((DateTime)dt.Rows[i][1]).ToShortDateString();

                    dt.Rows[i][1] = date_vale.ToString();

                    dt.Rows[i][2] = DataBaseOperate.get_CropCHName(dt.Rows[i][2].ToString());
                    if (!string.IsNullOrEmpty(dt.Rows[i][3].ToString()))
                    {
                        dt.Rows[i][3] = Math.Round((double)dt.Rows[i][3], 3);
                    }
                }
                else //soil
                {
                    if (dt.Columns[0].ColumnName == "作业站")
                    {
                        dt.Rows[i][0] = DataBaseOperate.getVillName(dt.Rows[i][0].ToString());
                    }
                    else if (dt.Columns[0].ColumnName == "作业区")
                    {
                        dt.Rows[i][0] = DataBaseOperate.getTownName(dt.Rows[i][0].ToString());
                    }
                    string date_vale = ((DateTime)dt.Rows[i][1]).ToShortDateString();
                    dt.Rows[i][1] = date_vale.ToString();
                    //dt.Rows[i][1] = ((DateTime)dt.Rows[i][1]).ToShortDateString();
                    dt.Rows[i][2] = DataBaseOperate.get_CropCHName(dt.Rows[i][2].ToString());
                    dt.Rows[i][3] = DataBaseOperate.get_NutrientCHName(dt.Rows[i][3].ToString());
                    if (!string.IsNullOrEmpty(dt.Rows[i][4].ToString()))
                    {
                        dt.Rows[i][4] = Math.Round((double)dt.Rows[i][4], 4);
                    }
                }
            }
            return(dt);
        }
Esempio n. 2
0
        //转换表中的值
        public static DataTable convert_TableValue(string rankname, string typename, DataTable dt)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                switch (rankname)
                {
                case "PLOT":
                    dt.Rows[i][0] = DataBaseOperate.get_PlotName(dt.Rows[i][0].ToString());
                    break;

                case "COUNTY":
                    dt.Rows[i][0] = DataBaseOperate.getCountyName(dt.Rows[i][0].ToString());
                    break;

                case "VILLAGE":
                    dt.Rows[i][0] = DataBaseOperate.getVillName(dt.Rows[i][0].ToString());
                    break;

                case "TOWN":
                    dt.Rows[i][0] = DataBaseOperate.getTownName(dt.Rows[i][0].ToString());
                    break;
                }
                dt.Rows[i][2] = DataBaseOperate.get_CropCHName(dt.Rows[i][2].ToString());

                if (!typename.Contains("SOILNUTRIENT"))
                {
                    if (!string.IsNullOrEmpty(dt.Rows[i][3].ToString()))
                    {
                        dt.Rows[i][3] = Math.Round(Convert.ToDecimal(dt.Rows[i][3].ToString()), 3);
                    }
                }
                else
                {
                    dt.Rows[i][3] = DataBaseOperate.get_NutrientCHName(dt.Rows[i][3].ToString());
                    if (!string.IsNullOrEmpty(dt.Rows[i][4].ToString()))
                    {
                        dt.Rows[i][4] = Math.Round(Convert.ToDecimal(dt.Rows[i][4].ToString()), 3);
                    }
                }
            }

            return(dt);
        }
Esempio n. 3
0
        /// <summary>
        /// 将图片流输出为文件
        /// </summary>
        /// <param name="tablename"></param>
        public static string ExportSoilPicture(string type, string datetime, string cropcode, string nurient)
        {
            byte[]        imagebytes;
            string        datetimeforamt = datetime.Substring(0, datetime.LastIndexOf(" ")).Replace('/', '-');
            string        cropName       = DataBaseOperate.get_CropCHName(cropcode);
            string        nutrientName   = DataBaseOperate.get_NutrientCHName(nurient);
            string        pathname       = Application.StartupPath + @"\Image\" + type + "_" + datetimeforamt + "_" + cropName + "_" + nutrientName + ".jpg";
            string        strSql         = "select PIC_MAP from MONITOR_PICTURE where INDICATOR_NAME='" + type + "' and MONITORTIME='" + datetime + "' and CROP_CODE='" + cropcode + "' and NUTRIENT_CODE='" + nurient + "'";
            SqlConnection con            = DataBaseOperate.getSqlCon();
            SqlCommand    cmd            = new SqlCommand(strSql, con);
            SqlDataReader reader         = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            string        value_path     = "";

            while (reader.Read())
            {
                //获取图片数据
                imagebytes = (byte[])reader["PIC_MAP"];
                //将内存流格式化为位图
                if (imagebytes.Length > 0)
                {
                    MemoryStream stream = new MemoryStream(imagebytes);

                    if (File.Exists(pathname))
                    {
                        File.Delete(pathname);
                    }
                    Image image = Image.FromStream(stream);
                    image.Save(pathname);
                    stream.Close();
                    image.Dispose();

                    value_path = pathname;
                }
                else
                {
                    value_path = "";
                }
            }
            con.Close();
            return(value_path);
        }
        private void btn_calculation_Click(object sender, EventArgs e)
        {
            date_count = DataBaseOperate.get_DateCount(dT_maize_s.Value, dT_maize_e.Value, "SOILNUTRIENT_PLOT");
            date_list  = DataBaseOperate.get_DateDetail(dT_maize_s.Value, dT_maize_e.Value, "SOILNUTRIENT_PLOT");
            //获取Towncount
            TownCount = AggregateToTown.get_TownCount();
            //获取具体的TownCode
            TownCode_list = AggregateToTown.get_TownCode();
            CropCount     = DataBaseOperate.get_CropCount();
            CropCode_list = DataBaseOperate.get_CropCode();
            nutrientCount = DataBaseOperate.get_NutrientCount();
            nutrient_list = DataBaseOperate.get_NutrientCode();
            if (date_count != 0)
            {
                for (int i = 0; i < date_count; i++)        //datetime循环
                {
                    for (int j = 0; j < TownCount; j++)     //villagecode循环
                    {
                        for (int k = 0; k < CropCount; k++) //crop_count循环
                        {
                            for (int h = 0; h < nutrientCount; h++)
                            {
                                //输入查询限制条件,执行存储过程
                                SqlParameter[] param = new SqlParameter[] {
                                    new SqlParameter("@time", Convert.ToDateTime(date_list[i])),
                                    new SqlParameter("@code", CropCode_list[k]),
                                    new SqlParameter("@towncode", TownCode_list[j]),
                                    new SqlParameter("@nutrient_code", nutrient_list[h]),
                                    new SqlParameter("@sum_result", SqlDbType.Float)
                                };
                                param[4].Direction = ParameterDirection.Output;
                                string value = AggregateToTown.get_SoilTownValue("calc_Town_SOILNUTRIENT", param);
                                if (value != "")
                                {
                                    DataRow row = dt.NewRow();
                                    row["作业区"]  = DataBaseOperate.getTownName(TownCode_list[j]);
                                    row["监测时间"] = Convert.ToDateTime(date_list[i]).ToShortDateString();
                                    row["作物类型"] = DataBaseOperate.get_CropCHName(CropCode_list[k]);
                                    row["养分类型"] = DataBaseOperate.get_NutrientCHName(nutrient_list[h]);
                                    row["汇总结果"] = float.Parse(value);
                                    row["汇总时间"] = DateTime.Now.ToShortDateString();
                                    dt.Rows.Add(row);
                                }
                            }
                        }
                    }
                }
                if (dt.Rows.Count == 0)
                {
                    MessageBox.Show("请检查输入条件或统计数据!");
                }
                else
                {
                    dataGridView1.DataSource = dt;
                }
            }

            else
            {
                MessageBox.Show("此时间段内,没有统计数据!");
            }

            InitDataSet();
        }