Webservice中异常处理记录---(out DataTable Output_table, out string resultMessage)

复制代码
[WebMethod]
        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
        public void Station_Manage(string strJson, out DataTable Output_table, out string resultMessage)
        {
            Output_table = new DataTable("ChildSNList");
            string strguid = string.Empty;
            try
            {
                strguid = Guid.NewGuid().ToString();
                resultMessage = "OK";
                string strSqlResult = string.Empty;
                DataTable dtResult = new DataTable();

                DataTable input_table = JsonConvert.DeserializeObject<DataTable>(strJson);
                //--先获取测试Table,然后循环出入临时表,然后传入对应的参数信息--//  
                if (input_table.Rows.Count > 0)
                {
                    #region sql excute
                    if (input_table != null)
                    {
                        {
                            for (int ix = 0; ix < input_table.Rows.Count; ix++)
                            {
                                string strSQL = "Insert Into sfcruntime.R_CHECKSN_IN_OUT ( GUIDNO,MSERIALNUMBER)";
                                OracleParameter[] deleteOp = new OracleParameter[]
                                                          {
                                              new OracleParameter("GUIDNO",         strguid),
                                              new OracleParameter("MSERIALNUMBER",  input_table.Rows[ix]["serialnumber"].ToString().Trim())
                                                            };
                                MES.Lib.DBHelper.OracleHelper.ExecuteNonQuery(OracleConnectString, CommandType.Text, strSQL, deleteOp);
                            }
                        }
                    }
                    #endregion 
                    //--调用存储过程返回处理结果--//
                    string[] oracleParams = { strguid.Trim(), "", "" };
                    ExecuteSP.ExecuteSPReturnOneStringAndOneDataTable(OracleConnectString, "ap.pkg_mes_auto_ft_inf.main", "last", ref strSqlResult, ref dtResult, oracleParams);
            //必须要加验证dtResult是否有数据;
          //如果直接通过Copy()给Output_table,异常现象----客户端调用时会导致另一个out参数 resultMessage始终返回null;   
if (dtResult != null && dtResult.Rows.Count > 0) { Output_table = dtResult.Copy(); Output_table.TableName = "Output_table"; }else { Output_table = null; } resultMessage = strSqlResult; AddLog("MachineParamsOperation", "Station_Manage", "machineName:" + strguid + " ,resultMessage:" + strSqlResult + " ; 请求结果:" + strSqlResult + strJson, "当前的方法:Station_Manage", "相关SP:AP.pkg_mes_auto_ft_inf.main", "LOG类型:记录请求", "", "", "", "", "", GetClientIP()); } else { resultMessage = "传入参数错误!"; } } catch (Exception ex) { resultMessage = ex.ToString(); AddLog("MachineParamsOperation", "Station_Manage", "machineName:" + strguid + " ,resultMessage:" + resultMessage + " ; 异常:" + ex.Message + strJson, "当前的方法:Station_Manage", "相关SP:AP.pkg_mes_auto_ft_inf.main", "LOG类型:异常", "", "", "", "", "", GetClientIP()); } }
复制代码

 

posted @   吴土炮Jared  阅读(371)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示