水晶易表调用C#的WebService,返回数据集合
发布时间:2025-12-10 11:39:34
浏览次数:4
1. 水晶易表不能识别WS接口返回的DataTable或DataSet数据类型,会提示“无法加载URL”
3. C#调用Oracle的Package,并返回数据列表
2. 经查证,可以接受string类型的,如果需要返回数据列表,那么需要借助数组来返回,代码实现如下:
public WeekSale_Table GetData(string skc1, string skc2, string week1, string week2, string week3, string week4){try{
//C#调用Oracle的包,返回数据列表OracleConnection orcn = new OracleConnection(ConfigurationManager.AppSettings["SAPBI"].ToString());OracleCommand cmd = new OracleCommand("pkg_cx_Productlifecycle.skcweeksale", orcn);cmd.CommandType = CommandType.StoredProcedure;OracleParameter ip0 = new OracleParameter("skc1", OracleType.VarChar);OracleParameter ip1 = new OracleParameter("skc2", OracleType.VarChar);OracleParameter ip2 = new OracleParameter("week1", OracleType.VarChar);OracleParameter ip3 = new OracleParameter("week2", OracleType.VarChar);OracleParameter ip4 = new OracleParameter("week3", OracleType.VarChar);OracleParameter ip5 = new OracleParameter("week4", OracleType.VarChar);ip0.Value = skc1;ip1.Value = skc2;ip2.Value = week1;ip3.Value = week2;ip4.Value = week3;ip5.Value = week4;cmd.Parameters.Add(ip0);cmd.Parameters.Add(ip1);cmd.Parameters.Add(ip2);cmd.Parameters.Add(ip3);cmd.Parameters.Add(ip4);cmd.Parameters.Add(ip5);OracleParameter p1 = new OracleParameter("p_rc", OracleType.Cursor);p1.Direction = System.Data.ParameterDirection.Output;cmd.Parameters.Add(p1);OracleDataAdapter command = new OracleDataAdapter(cmd);DataSet ds = new DataSet();command.Fill(ds, "Table");DataTable dt = ds.Tables["Table"];WeekSale_Table wt = new WeekSale_Table();wt.row = new WeekSale_Row[dt.Rows.Count];int rcount = dt.Rows.Count;for (int i = 0; i < rcount; i++){DataRow dr = dt.Rows[i];WeekSale_Row row = new WeekSale_Row();row.DISCOUNT1 = dr["DISCOUNT1"].ToString();row.DISCOUNT2 = dr["DISCOUNT2"].ToString();row.FCALCSUMS1 = dr["FCALCSUMS1"].ToString();row.FCALCSUMS2 = dr["FCALCSUMS2"].ToString();row.NUMS1 = dr["NUMS1"].ToString();row.NUMS2 = dr["NUMS2"].ToString();row.SKC1 = dr["SKC1"].ToString();row.SKC2 = dr["SKC2"].ToString();row.WEEK = dr["WEEK"].ToString();row.WEEKS = dr["WEEKS"].ToString();wt.row[i] = row;}return wt;}catch{return null;}} //定义Row,一行
public class WeekSale_Row{public string WEEKS;public string SKC1;public string SKC2;public string FCALCSUMS1;public string FCALCSUMS2;public string NUMS1;public string NUMS2;public string DISCOUNT1;public string DISCOUNT2;public string WEEK;}//定义Tablepublic class WeekSale_Table{public WeekSale_Row[] row;}
转载于:https://www.cnblogs.com/qidian10/archive/2012/08/16/2643215.html