winfom datatable 手动生成

本文介绍了一个用于从数据库中检索特定型号物料销售信息的方法。通过构造SQL查询语句并使用参数化方式传递型号ID,该方法能够获取到物料名称、代码、产品代码及销售详情等数据,并将这些数据整理为易于使用的DataTable格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  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;
           }
       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值