水晶易表調用C#的WebService,返回資料集合的應用分析

來源:互聯網
上載者:User

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

//定義Table
public class WeekSale_Table
{
public WeekSale_Row[] row;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.