zoukankan      html  css  js  c++  java
  • 获取报告 Stream转string,利用字符串分割转换成DataTable

        protected void Button1_Click(object sender, EventArgs e)
        {
            MemoryStream stream = new MemoryStream();
            StreamReader reader = new StreamReader(stream);
    
            GetReportRequest request = new GetReportRequest();
            request.ReportId = "24537536063";
            request.Merchant = sellerId;
            request.MWSAuthToken = mwsAuthToken;
            request.Report = stream;
            ltMsg.Text = InvokeGetReport(request);
    
            string text = reader.ReadToEnd();
            stream.Dispose();
            stream.Close();
            reader.Dispose();
            reader.Close();
    
    
            DataTable dt = ConvertReport2DT(text);
            GridView1.DataSource = dt;
            GridView1.DataBind();
    
            //Response.Write(text);
        }
    
        public static string InvokeGetReport(GetReportRequest request)
        {
            StringBuilder builder = new StringBuilder();
            try
            {
                MarketplaceWebService.MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
                config.ServiceURL = serviceURL;
                MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient
                    (accessKey, secretKey, appName, appVersion, config);
    
                GetReportResponse response = service.GetReport(request);
    
                builder.AppendFormat("Service Response");
                builder.AppendFormat("=============================================================================");
    
                builder.AppendFormat("        GetReportResponse");
                if (response.IsSetGetReportResult())
                {
                    builder.AppendFormat("            GetReportResult");
                    GetReportResult getReportResult = response.GetReportResult;
                    if (getReportResult.IsSetContentMD5())
                    {
                        builder.AppendFormat("                ContentMD5");
                        builder.AppendFormat("                    {0}", getReportResult.ContentMD5);
                    }
                }
                if (response.IsSetResponseMetadata())
                {
                    builder.AppendFormat("            ResponseMetadata");
                    ResponseMetadata responseMetadata = response.ResponseMetadata;
                    if (responseMetadata.IsSetRequestId())
                    {
                        builder.AppendFormat("                RequestId");
                        builder.AppendFormat("                    {0}", responseMetadata.RequestId);
                    }
                }
    
                builder.AppendFormat("            ResponseHeaderMetadata");
                builder.AppendFormat("                RequestId");
                builder.AppendFormat("                    " + response.ResponseHeaderMetadata.RequestId);
                builder.AppendFormat("                ResponseContext");
                builder.AppendFormat("                    " + response.ResponseHeaderMetadata.ResponseContext);
                builder.AppendFormat("                Timestamp");
                builder.AppendFormat("                    " + response.ResponseHeaderMetadata.Timestamp);
    
            }
            catch (MarketplaceWebServiceException ex)
            {
                builder.AppendFormat("Caught Exception: " + ex.Message);
                builder.AppendFormat("Response Status Code: " + ex.StatusCode);
                builder.AppendFormat("Error Code: " + ex.ErrorCode);
                builder.AppendFormat("Error Type: " + ex.ErrorType);
                builder.AppendFormat("Request ID: " + ex.RequestId);
                builder.AppendFormat("XML: " + ex.XML);
                builder.AppendFormat("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata);
            }
            return builder.ToString();
        }
    
        #region 报告字符串转换成DataTable
        /// <summary>
        /// 报告字符串转换成DataTable
        /// </summary>
        /// <param name="reportMsg">报告字符串</param>
        /// <returns></returns>
        public static DataTable ConvertReport2DT(string reportMsg)
        {
            DataTable dt = new DataTable();
            try
            {
                //	       
    
                if (reportMsg.Contains("
    "))
                {
                    string[] rows = reportMsg.Split(new string[] { "
    " }, StringSplitOptions.RemoveEmptyEntries);
                    //第一行表头
                    if (rows[0].Contains("	")) //制表符
                    {
                        string[] columns = rows[0].Split('	');
                        for (int i = 0; i < columns.Length; i++)
                        {
                            if (!dt.Columns.Contains(columns[i]))
                            {
                                dt.Columns.Add(columns[i]);
                            }
                        }
                    }
                    //第二行开始数据
                    for (int i = 1; i < rows.Length; i++)
                    {
                        string[] datas = rows[i].Split('	');
                        DataRow dr = dt.NewRow();
                        for (int j = 0; j < datas.Length; j++)
                        {
                            dr[j] = datas[j];
                        }
                        dt.Rows.Add(dr);
                        dr = null;
                    }
                }
            }
            catch { }
            return dt;
        }
        #endregion

  • 相关阅读:
    50个必备的实用jQuery代码段
    js前台改变服务器控件的disable的属性,后台获取不到值
    什么是线程安全?
    解决用JS修改服务器端控件值后在后台无法获取修改后值的问题
    C# 集合类 :(Array、 Arraylist、List、Hashtable、Dictionary、Stack、Queue)
    ASP.NET MVC生命周期介绍
    求一段CSS样式代码;要求是Table的标签样式,实现Table标签奇数行显示一个颜色;偶数行显示另外一种颜色
    JavaScript中Date.parse 函数用法
    sql 获取 一列的值显示一行
    超强 css 实现 table 隔行 ,隔列 换色
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234131.html
Copyright © 2011-2022 走看看