winfom datatable 手动生成

来源:互联网 发布:linux下java开发平台 编辑:程序博客网 时间:2024/06/11 00:02
 

  public DataTable GetMaterialSellInfo(int ModelId)
       {
           try
           {
               StringBuilder strSql = new StringBuilder();
               strSql.Append("  select m_name,m_code,product_code,wmsys.wm_concat(value) value");
               strSql.Append("  from (select b.m_name,b.m_code,b.product_code,a.period || ':' || a.price || ';' || a.min || ';' || a.max value");
               strSql.Append("  from act_material_sell a, ACT_MATERIAL_DICT b");
               strSql.Append("  where a.material_id = b.material_id and b.model_id=" + ModelId + "");
               strSql.Append("  order by b.m_name, a.period asc)");
               strSql.Append("  group by m_name,m_code,product_code");

               DataSet ds = GetDataSet(strSql.ToString());

               string M_Name, M_Code, Product_Code, Value = "";
               int ValueLength = 0;

               DataTable dt = new DataTable();

               int columncount = 0;

               DataTable newDt = ds.Tables[0].Clone();

               if (ds.Tables[0].Rows.Count > 0)
                   Value = ds.Tables[0].Rows[0]["VALUE"].ToString();
               ValueLength = Value.Split(',').Length;

               for (int i = 0; i < ValueLength * 3; i++)
               {
                   newDt.Columns.Add(new DataColumn());
               }

               newDt.Columns.Remove("value");

               string str = "";
               for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
               {
                   M_Name = ds.Tables[0].Rows[i]["M_NAME"].ToString();
                   M_Code = ds.Tables[0].Rows[i]["M_CODE"].ToString();
                   Product_Code = ds.Tables[0].Rows[i]["PRODUCT_CODE"].ToString();
                   Value = ds.Tables[0].Rows[i]["VALUE"].ToString();
                   ValueLength = Value.Split(',').Length;


               
                   DataRow dr = newDt.NewRow();
                   dr[0] = M_Name;
                   dr[1] = M_Code;
                   dr[2] = Product_Code;

                   dr[3] = "3";
                   dr[4] = "4";
                   dr[5] = "5";
                   dr[6] = "6";
                   dr[7] = "7";
                   dr[8] = "8";
                   dr[9] = "9";
                   dr[10] = "10";
                   dr[11] = "11";

                   newDt.Rows.Add(dr);

               }
               return newDt;
           }
           catch (Exception ex)
           {
               throw ex;
           }
       }