1. 水晶易表不能识别WS接口返回的DataTable或DataSet数据类型,会提示“无法加载URL”
3. C#调用Oracle的Package,并返回数据列表
2. 经查证,可以接受string类型的,如果需要返回数据列表,那么需要借助数组来返回,代码实现如下:
public WeekSale_Table GetDatastring skc1, string skc2, string week1, string week2, string week3, string week4) { try {
//C#调用Oracle的包,返回数据列表 OracleConnection orcn = new OracleConnectionConfigurationManager.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.Addip0); cmd.Parameters.Addip1); cmd.Parameters.Addip2); cmd.Parameters.Addip3); cmd.Parameters.Addip4); cmd.Parameters.Addip5); OracleParameter p1 = new OracleParameter"p_rc", OracleType.Cursor); p1.Direction = System.Data.ParameterDirection.Output; cmd.Parameters.Addp1); OracleDataAdapter command = new OracleDataAdaptercmd); DataSet ds = new DataSet); command.Fillds, "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; } //定义Table public class WeekSale_Table { public WeekSale_Row[] row; }
作者:Jack.Chain
出处:http://www.cnblogs.com/qidian10

