public bool Start(out ErrInfo err) { err = new ErrInfo("FF01", ""); try { Flag_Listen = true; ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint localEP = new IPEndPoint(IPAddress.Any, port); try { ServerSocket.Bind(localEP); } catch (Exception ex) { err = new ErrInfo("FF01", ex.Message); Log.Fatal("TcpServer:" + ex.Message); return(false); } ServerSocket.Listen(20); Thread thread = new Thread(ListenConnecting); thread.IsBackground = true; thread.Start(); return(true); } catch (Exception ex2) { err = new ErrInfo("FF01", ex2.Message); Log.Fatal("TcpServer:" + ex2.Message); return(false); } }
} // get /* ** Name: get ** ** Description: ** Generate an SqlEx exception from an ErrInfo constant ** and another SqlEx exception. The existing SqlEx ** exception is chained to the SqlEx exception created ** from the error information. ** ** Input: ** err ErrInfo constant. ** ex Associated exception, ** ** Output: ** None. ** ** Returns: ** SqlEx The new exception object. ** ** History: ** 20-Apr-00 (gordy) ** Created. ** 11-Sep-02 (gordy) ** Renamed class to remove specific product reference. */ public static SqlEx get(ErrInfo err, SqlEx ex) { SqlEx ex_list = get(err); ex_list.setNextException(ex); return(ex_list); } // get
public bool Start(out ErrInfo err) { err = new ErrInfo("FF01", ""); if (CommPort == null) { err = new ErrInfo("FF01", "端口类型错误"); return(false); } PortType port = CommPort.Port; PortType portType = port; if (portType == PortType.TcpServer) { tcpServer = new TcpServer(int.Parse(CommPort.ConnStr)); tcpServer.OnAddSocket += TcpServer_OnAddSocket; tcpServer.OnDelSocket += TcpServer_OnDelSocket; IsConnected = tcpServer.Start(out err); if (!IsConnected) { tcpServer.Stop(); tcpServer = null; } } else { err = new ErrInfo("FF01", "端口类型错误"); } return(IsConnected); }
protected internal static void TrigerApiException(string senderName, ErrInfo e) { if (AbstractReader.OnApiException != null) { AbstractReader.OnApiException(senderName, e); } }
void apierrMethod(ErrInfo e) { if (e.Ei.ErrCode == "FF22") { TreeNode[] tns = tvReaders.Nodes.Find(e.ReaderName, true); if (tns.Length > 0) { if (tns[0].Parent.Parent.Name == "Server") { tvReaders.Nodes.Remove(tns[0]); } else { tns[0].ImageIndex = 4; tvReaders.SelectedNode.SelectedImageIndex = tvReaders.ImageIndex; } txtMsg.AppendText(e.ReaderName + "断开连接"); } } else if (e.Ei.ErrCode == "FF24")//发现连接作废 { TreeNode[] tns = tvReaders.Nodes.Find(e.ReaderName, true); if (tns.Length > 0) { if (tns[0].Parent.Parent.Name != "Server") { tns[0].ImageIndex = 4; tvReaders.SelectedNode.SelectedImageIndex = tvReaders.ImageIndex; } txtMsg.AppendText(e.ReaderName + "断开连接"); } } }
private void Reader_OnApiException(string senderName, ErrInfo e) { if (e.ErrCode == "FF02" && this.OnBrokenNetwork != null) { this.OnBrokenNetwork(senderName, e); } }
private void threadKeepAliveMethod() { while (true) { if (!isEnableKeepAlive) { return; } for (int i = 0; i < keepAliveInterval * 10; i++) { Thread.Sleep(100); if (!isEnableKeepAlive) { break; } } Thread.Sleep(200); if (isEnableKeepAlive) { int num = (int)DateTime.Now.Subtract(dtKeepAlive).TotalMilliseconds; if (num > keepAliveInterval * 1000) { break; } } } setIsConnected(isConnected: false); if (this.OnBrokenNetwork != null) { ErrInfo e = new ErrInfo("FF02", ErrInfoList.ErrDictionary["FF02"]); this.OnBrokenNetwork(ReaderName, e); Disconnect(); } }
public static ErrInfo saveImage(HttpPostedFile file, string filePath) { ErrInfo err = new ErrInfo(); try { string path = Config.webPath + filePath + System.DateTime.Now.ToString("yyyy-MM") + "/"; if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(path))) { System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(path)); } string kzm = ""; if (file.FileName.LastIndexOf(".") > -1) { kzm = file.FileName.Substring(file.FileName.LastIndexOf(".") + 1).ToLower(); } if (!Regex.IsMatch(kzm, "(jpg|gif|png)")) { err.errNo = -1; err.errMsg = "文件类型不合法,只能上传jpg,gif,png"; return(err); } string fileName = API.GetId() + "." + kzm; file.SaveAs(HttpContext.Current.Server.MapPath(path + fileName)); err.userData = path + fileName; return(err); } catch (Exception ex) { err.errNo = -1; err.errMsg = ex.Message; return(err); } }
/// <summary> /// 获取错误代码和错误信息 /// </summary> /// <returns></returns> internal ErrInfo GetErrInfo() { HuiShouYin.Domain.ErrInfo err = new ErrInfo() { error_code = Tools.GetJosnValue(Body, "error_code"), error_msg = Tools.GetJosnValue(Body, "error_msg") }; return(err); }
get(ErrInfo err) { String msg; try { msg = ErrRsrc.getResource().getString(err.id); } catch (Exception) { msg = err.name; } return(new SqlEx(msg, err.sqlState, err.code)); } // Get
/// <summary> /// 获取错误代码和错误信息 /// </summary> /// <returns></returns> internal ErrInfo GetErrInfo() { // {"errcode":40013,"errmsg":"invalid appid"} WeiXin.Domain.ErrInfo err = new ErrInfo() { ErrCode = Convert.ToInt64(Tools.GetJosnValue(Body, "errcode")), ErrMsg = Tools.GetJosnValue(Body, "errmsg") }; return(err); }
/// <summary> /// 获取错误代码和错误信息 /// </summary> /// <returns></returns> internal ErrInfo GetErrInfo() { var err = new ErrInfo() { ErrCode = Convert.ToInt64(Tools.GetJosnValue(Body, "errcode")), ErrMsg = Tools.GetJosnValue(Body, "errmsg") }; return(err); }
} // get /* ** Name: get ** ** Description: ** Generate an SqlEx exception from an ErrInfo constant ** and a general exception. The general exception is ** converted into an SqlEx exception and chained to the ** SqlEx exception created from the error information. ** ** Input: ** err ErrInfo constant ** ex Associated exception. ** ** Ouptut: ** None. ** ** Returns: ** SqlEx The new exception object. ** ** History: ** 20-Apr-00 (gordy) ** Created. ** 11-Sep-02 (gordy) ** Renamed class to remove specific product reference. */ public static SqlEx get(ErrInfo err, Exception ex) { SqlEx sqlEx; String msg = ex.Message; if (msg == null) { msg = ex.ToString(); } sqlEx = (msg == null) ? get(err) : get(err, new SqlEx(msg)); return(sqlEx); } // Get
public RecFileInfoAppend(RecFileInfo info, bool isValid = true) { if (isValid == true) { ProgramInfo = info._ProgramInfo; ErrInfo = info._ErrInfo; } if (string.IsNullOrEmpty(ErrInfo) == false) { try { DropsCritical = 0; ScramblesCritical = 0; var newInfo = new StringBuilder(""); string[] lines = ErrInfo.Split(new char[] { '\n' }); foreach (string line1 in lines) { string line_new = line1; if (line1.StartsWith("PID:") == true) { string[] words = line1.Split(new char[] { ' ', ':' }, StringSplitOptions.RemoveEmptyEntries); //デフォルト { "EIT", "NIT", "CAT", "SDT", "SDTT", "TOT", "ECM", "EMM" } if (Settings.Instance.RecInfoDropExclude.FirstOrDefault(s => words[8].Contains(s)) == null) { DropsCritical += (Int64)Convert.ToUInt64(words[5]); ScramblesCritical += (Int64)Convert.ToUInt64(words[7]); line_new = line1.Replace(" " + words[8], "*" + words[8]); } } newInfo.Append(line_new.TrimEnd('\r') + "\r\n");//単に\n付けるだけでも良いが、一応"\r\n"に確定させる } newInfo.AppendFormat(" * = Critical Drop/Scramble Parameter.\r\n"); newInfo.AppendFormat(" Drop:{0,9} Scramble:{1,10} Total\r\n", info.Drops, info.Scrambles); newInfo.AppendFormat(" *Drop:{0,9} *Scramble:{1,10} *Critical\r\n", DropsCritical, ScramblesCritical); ErrInfo = newInfo.ToString(); return; } catch { }//エラーがあったときは、ラストへ } DropsCritical = info.Drops; ScramblesCritical = info.Scrambles; }
void apierr(ErrInfo e) { if (this.InvokeRequired) { MethodInvoker invoker = new MethodInvoker( delegate() { apierrMethod(e); }); this.BeginInvoke(invoker, e); } else { apierrMethod(e); } }
public static User GetUserInfo(string openid, string accessToken, out ErrInfo err) { err = null; IMpClient mpClient = new MpClient(); GetUserInfoRequest request2 = new GetUserInfoRequest() { AccessToken = accessToken, OpenId = openid, }; var response2 = mpClient.Execute(request2); if (response2.IsError) { err = response2.ErrInfo; LogHelper.WriteError("Foresight.Winxin", "获取用户基本信息失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg, null); return(null); } else { return(response2.UserInfo); } }
/// <summary> /// 检测数据合法性 /// </summary> /// <param name="ds"></param> /// <param name="tableName"></param> /// <param name="errInfos"></param> /// <param name="errmessage">错误记录</param> /// <param name="fromImportItemsDT"></param> /// <param name="fromDefaulValueItemsDT"></param> /// <param name="inImportFileButNotImportDT"></param> /// <returns></returns> virtual public bool CheckDataValid(DataSet ds, string tableName, ref List <ErrInfo> errInfos, ref string errmessage, ref DataTable fromImportItemsDT, ref DataTable fromDefaulValueItemsDT, ref DataTable inImportFileButNotImportDT) { if (ds.Tables != null && ds.Tables.Count > 0) { DataTable dt = ds.Tables[0]; int rowNo = 1; #region 检测导入文件中字段是否为有效字段(字段名是否存在) foreach (DataColumn dc in dt.Columns) { bool hasExist = false; //是否存在该列字段 //Import需要导入部分是否包含该字段 foreach (DataRow dr in fromImportItemsDT.Rows) { if (dc.ColumnName.ToLower().Trim().Equals(dr["CName"].ToString().ToLower().Trim())) { hasExist = true; break; } } if (hasExist) { continue; } //Import不需要导入部分是否包含该字段 foreach (DataRow dr in inImportFileButNotImportDT.Rows) { if (dc.ColumnName.ToLower().Trim().Equals(dr["CName"].ToString().ToLower().Trim())) { hasExist = true; break; } } if (hasExist) { continue; } //默认值中是否包含该字段 foreach (DataRow dr in fromDefaulValueItemsDT.Rows) { if (dc.ColumnName.ToLower().Trim().Equals(dr["CName"].ToString().ToLower().Trim())) { hasExist = true; break; } } //该字段不存在,不能导入 if (hasExist == false) { var err = new ErrInfo { ErrRowNo = "所有行", ErrType = PageConst.ImportDataErrorType.ItemNotExist, ErrData = dc.ColumnName }; var paras = new List <string> { dc.ColumnName }; err.ErrMsg = GetMessage("700003", paras); errInfos.Add(err); } } #endregion #region 字段个数不对应 //if (fromImportItemsDT != null && fromImportItemsDT.Rows.Count > 0) //{ // DataRow importTemplateInfoDR = new ImportTemplateRule().GetImportTemplateDr(fromImportItemsDT.Rows[0]["ObjName"].ToString()); // if (importTemplateInfoDR != null && // dt.Columns.Count != ConvertHelper.ConvertInt(importTemplateInfoDR["ItemsCount"])) // { // var err = new ErrInfo // { // ErrRowNo = "所有行", // ErrType = PageConst.ImportDataErrorType.ItemNumNotMatch, // ErrData = "所有行" // }; // var paras = new List<string> {importTemplateInfoDR["ItemsCount"].ToString()}; // err.ErrMsg = GetMessage("700001", paras); // } //} #endregion #region 检测数据的合法性 bool success = true; //是否检验通过 foreach (DataRow dr in dt.Rows) { //检测每行数据的合法性 if (CheckRowData(dr, tableName, fromImportItemsDT, fromDefaulValueItemsDT, rowNo.ToString(), ref errInfos, ref errmessage)) { continue; } rowNo++; success = false; } #endregion return(success); } return(false); }
/* ** Name: get ** ** Description: ** Generate an SqlEx exception from an ErrInfo constant ** and another SqlEx exception. The existing SqlEx ** exception is chained to the SqlEx exception created ** from the error information. ** ** Input: ** err ErrInfo constant. ** ex Associated exception, ** ** Output: ** None. ** ** Returns: ** SqlEx The new exception object. ** ** History: ** 20-Apr-00 (gordy) ** Created. ** 11-Sep-02 (gordy) ** Renamed class to remove specific product reference. */ public static SqlEx get( ErrInfo err, SqlEx ex ) { SqlEx ex_list = get( err ); ex_list.setNextException( ex ); return( ex_list ); }
/* ** Name: get ** ** Description: ** Generate an SqlEx exception from an ErrInfo constant ** and a general exception. The general exception is ** converted into an SqlEx exception and chained to the ** SqlEx exception created from the error information. ** ** Input: ** err ErrInfo constant ** ex Associated exception. ** ** Ouptut: ** None. ** ** Returns: ** SqlEx The new exception object. ** ** History: ** 20-Apr-00 (gordy) ** Created. ** 11-Sep-02 (gordy) ** Renamed class to remove specific product reference. */ public static SqlEx get( ErrInfo err, Exception ex ) { SqlEx sqlEx; String msg = ex.Message; if ( msg == null ) msg = ex.ToString(); sqlEx = (msg == null) ? get( err ) : get( err, new SqlEx( msg ) ); return( sqlEx ); }
/* ** Name: get ** ** Description: ** Generate an SqlEx exception from an ErrInfo constant. ** ** Input: ** err ErrInfo constant. ** ** Output: ** None. ** ** Returns: ** SqlEx The new exception object. ** ** History: ** 20-Apr-00 (gordy) ** Created. ** 11-Sep-02 (gordy) ** Renamed class to remove specific product reference. */ public static SqlEx get( ErrInfo err ) { String msg; try { msg = ErrRsrc.getResource().getString( err.id ); } catch( Exception ){ msg = err.name; } return( new SqlEx( msg, err.sqlState, err.code ) ); }
protected bool Connect(out ErrInfo err) { err = new ErrInfo("FF01", ""); if (iComm == null) { try { string text = CommPort.Port.ToString(); if (text == "RS232" || text == "RS485") { //text = "COM"; iComm = new COM(); } else { iComm = new NetAPI.Communication.TcpClient(); } //Type type = Type.GetType("NetAPI.Communication." + text, throwOnError: true); //iComm = (ICommunication)Activator.CreateInstance(type); iComm.readerName = ReaderName; } catch (Exception ex) { err = new ErrInfo("FF01", ex.Message); Log.Fatal(CommPort.Port.ToString() + ":" + ex.Message); return(false); } } if (iComm != null) { //Assembly assembly = Assembly.LoadFrom(APIPath.folderName + "\\API.dll"); //Type type2 = assembly.GetType("NetAPI.Protocol.VRP.Decode", throwOnError: true); //iComm.iProcess = (IProcess)Activator.CreateInstance(type2); iComm.iProcess = new Decode(); try { if (iComm.Open(CommPort.ConnStr)) { iComm.OnMsgReceived += iConn_OnMsgReceived; iComm.OnBuffReceived += iConn_OnBuffReceived; iComm.threadProcess = new Thread(iComm.process); iComm.threadProcess.Start(); if (ConnectMessage != null && !(CommPort is UdpPort)) { bool flag = false; for (int i = 0; i < 2; i++) { IHostMessage connectMessage = ConnectMessage; bool flag2 = Send(connectMessage); if (connectMessage.Status != MsgStatus.Timeout) { flag = true; break; } } if (!flag) { err = new ErrInfo("FF01", "协议消息测试失败"); Disconnect(); return(false); } } return(true); } } catch (Exception ex2) { err = new ErrInfo("FF01", ex2.Message); Log.Error("iComm:" + ex2.Message); return(false); } } return(false); }
private void getuserinfo(HttpContext context) { string OpenID = GetOpenID(context); if (string.IsNullOrEmpty(OpenID)) { WebUtil.WriteJsonError(context, ErrorCode.InvalideRequest, "获取用户OpenID失败"); return; } ErrInfo err = new ErrInfo(); string accesstoken = WeixinHelper.GetAccessToken(null); var wechatuser = WeixinHelper.GetUserInfo(OpenID, accesstoken, out err); if (wechatuser == null) { if (err.ErrCode == 40001)//invalid credential { accesstoken = WeixinHelper.GetAccessToken(accesstoken); wechatuser = WeixinHelper.GetUserInfo(OpenID, accesstoken, out err); } } if (wechatuser == null) { WebUtil.WriteJsonError(context, ErrorCode.InvalideRequest, err.ErrMsg); return; } Foresight.DataAccess.Wechat_User user = Foresight.DataAccess.Wechat_User.GetWechat_UserByUserOpenID(OpenID); if (user == null) { user = new Foresight.DataAccess.Wechat_User() { OpenId = OpenID, }; } if (!string.IsNullOrEmpty(wechatuser.NickName)) { user.NickName = wechatuser.NickName; } if (!string.IsNullOrEmpty(wechatuser.HeadImgUrl)) { user.HeadImgUrl = wechatuser.HeadImgUrl.Replace("\\", ""); } if (!string.IsNullOrEmpty(wechatuser.Sex)) { user.Sex = int.Parse(wechatuser.Sex); } if (!string.IsNullOrEmpty(wechatuser.City)) { user.City = wechatuser.City; } if (!string.IsNullOrEmpty(wechatuser.Country)) { user.Country = wechatuser.Country; } if (!string.IsNullOrEmpty(wechatuser.Province)) { user.Province = wechatuser.Province; } if (!string.IsNullOrEmpty(wechatuser.Language)) { user.Language = wechatuser.Language; } if (!string.IsNullOrEmpty(wechatuser.SubScribe)) { user.SubScribe = int.Parse(wechatuser.SubScribe); } if (!string.IsNullOrEmpty(wechatuser.SubscribeTime)) { user.SubscribeTime = ConvertDate(wechatuser.SubscribeTime); } if (user.SubScribe != 0) { user.UnSubscribeTime = DateTime.MinValue; } else { if (user.UnSubscribeTime == DateTime.MinValue) { user.UnSubscribeTime = DateTime.Now; } } if (user.FirstSubScribeTime == DateTime.MinValue) { user.FirstSubScribeTime = user.SubscribeTime; } user.Save(); WebUtil.WriteJsonResult(context, new { status = true, HeadImgUrl = user.HeadImgUrl, NickName = user.NickName }); }
void Reader_OnApiException(ErrInfo e) { apierr(e); }
/// <summary> /// 检测数据是否合法 /// </summary> /// <param name="csvDataDR"></param> /// <param name="tableName"></param> /// <param name="fromCsvItemsDT"></param> /// <param name="fromDefaulValueItemsDT"></param> /// <param name="rowNo"></param> /// <param name="listErrInfo"></param> /// <param name="msg"></param>zzzz /// <returns></returns> public static bool CheckRowData(DataRow csvDataDR, string tableName, DataTable fromCsvItemsDT, DataTable fromDefaulValueItemsDT, string rowNo, ref List <ErrInfo> listErrInfo, ref string msg) { bool retVal = true; #region 数据重复Check DataTable dt = new ImportItemsRule().GetImportItemsDtbyPk(fromCsvItemsDT.Rows[0]["ObjName"].ToString()); string sql = string.Format("select * from {0} where ", tableName); bool sqlError = false; if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (dr["ColType"].ToString().Equals(((int)PageConst.ImportItemTypeEnum.FromImportFile).ToString())) { //导入文件中的数据 sql += string.Format("{0}='{1}' and ", dr["xColumn"].ToString().Trim(), csvDataDR[dr["CName"].ToString().Trim()]); } else { //默认值数据 string pDataSource = new ReplaceParaHelper.ImportCsvReplaceParameter().ReplaceSqlValue(dr["DataSource"].ToString().Replace("\"", "'"), csvDataDR); try { DataTable pDT = DBAccess.DbHelperSQL.QueryBySQL(pDataSource); if (pDT.Rows.Count > 0) { sql += string.Format("{0}='{1}' and ", dr["xColumn"].ToString().Trim(), pDT.Rows[0][0].ToString().Trim()); } else { sqlError = true; } } catch (Exception ex) { sqlError = true; msg = ex.Message; } } } if (sqlError == false) { dt = DBAccess.DbHelperSQL.QueryBySQL(sql.Trim().Substring(0, sql.Length - 4)); if (dt.Rows.Count > 0) { var paras = new List <string>(1); //主键重复 var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataHasExist, ErrMsg = GetMessage("700002", paras), ErrData = GetImportFileRowData(csvDataDR) }; listErrInfo.Add(er); return(false); } } else { //SQL执行错误 var paras = new List <string>(1); var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataIsValid, ErrMsg = GetMessage("700010", paras), ErrData = GetImportFileRowData(csvDataDR) }; listErrInfo.Add(er); retVal = false; } } #endregion //检测导入文件中的字段是否符合规范 foreach (DataRow dr in fromCsvItemsDT.Rows) { #region 模板文件中不存在该列 if (!CheckItemExist(dr["CName"].ToString(), csvDataDR)) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.ItemNotExist, ErrMsg = GetMessage("700011", paras), ErrData = dr["CName"].ToString() }; listErrInfo.Add(er); return(false); } #endregion #region 找不到符合条件的数据,一般出现在数据替换的时候 if (!string.IsNullOrEmpty(dr["DataSource"].ToString())) { string pDataSource = new ReplaceParaHelper.ImportCsvReplaceParameter().ReplaceSqlValue(dr["DataSource"].ToString().Replace("\"", "'"), csvDataDR); DataTable dt2 = DBAccess.DbHelperSQL.QueryBySQL(pDataSource); if (dt2.Rows.Count <= 0) { var paras = new List <string>(2) { csvDataDR[dr["CName"].ToString()].ToString(), dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.KeyDataNotExist, ErrMsg = GetMessage("700012", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); } } #endregion #region 检测数据类型是否正确 if (dr["DataType"].ToString().ToLower().StartsWith("varchar") || dr["DataType"].ToString().ToLower().StartsWith("char") || dr["DataType"].ToString().ToLower().StartsWith("nvarchar")) { //获取长度 int left = dr["DataType"].ToString().ToLower().IndexOf('(') + 1; int right = dr["DataType"].ToString().ToLower().IndexOf(')'); int length = Convert.ToInt32(dr["DataType"].ToString().ToLower().Substring(left, right - left)); #region Check字符窜长度是否超出范围 if (PageHelper.CheckCharIsLong(csvDataDR[dr["CName"].ToString()].ToString(), length)) { var paras = new List <string>(2) { dr["CName"].ToString(), length.ToString() }; int halfLength = length / 2; paras.Add(halfLength.ToString()); var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataIsTooLarge, ErrMsg = GetMessage("700004", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; } #endregion } else if (dr["DataType"].ToString().ToLower().StartsWith("int")) { #region Check整数 if (!PageHelper.CheckIsInteger(csvDataDR[dr["CName"].ToString()].ToString())) { //不是整数时 var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700005", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; } #endregion } else if (dr["DataType"].ToString().ToLower().StartsWith("decimal")) { //Check高精度浮点数 string subStr = dr["DataType"].ToString().ToLower().Substring(dr["DataType"].ToString().ToLower().IndexOf("(") + 1).TrimEnd(')'); string[] strs = subStr.Split(','); int decimalPart = Convert.ToInt32(strs[1]); int integerPart = Convert.ToInt32(strs[0]) - decimalPart; #region Check是否为Decimal类型 if (!PageHelper.CheckIsDecimal(csvDataDR[dr["CName"].ToString()].ToString())) { //不是高精度浮点数类型 var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700007", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; } #endregion #region Check高精度型的位数是否正确 else { //是高精度浮点数,但超出范围 if (PageHelper.CheckDecimalIsBigger(csvDataDR[dr["CName"].ToString()].ToString(), integerPart, decimalPart)) { //不是高精度浮点数类型 var paras = new List <string>(3) { dr["CName"].ToString(), integerPart.ToString(), decimalPart.ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700008", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; } } #endregion } else if (dr["DataType"].ToString().ToLower().StartsWith("datetime")) { #region Check日期格式 if (!PageHelper.CheckIsDateTime(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700009", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; } #endregion } #endregion #region 检测是否符合某些验证规范 if (!String.IsNullOrEmpty(dr["CheckMethod"].ToString())) { string[] methods = dr["CheckMethod"].ToString().Split(';'); bool hasChecked = false; foreach (string method in methods) { if (hasChecked) { break; } switch (method) { #region 检测是否不为空 case "CheckIsNotEmpty": if (!PageHelper.CheckIsNotEmpty(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700014", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为整数 case "CheckIsInteger": if (!PageHelper.CheckIsInteger(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700005", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为数字类型 case "CheckIsDecimal": if (!PageHelper.CheckIsDecimal(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700007", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为字符类型 case "CheckIsChar": if (!PageHelper.CheckIsChar(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700015", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为数字字母类型 case "CheckIsNumChar": if (!PageHelper.CheckIsNumChar(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700016", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为邮件类型 case "CheckIsEmail": if (!PageHelper.CheckIsEmail(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700017", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为日期类型 case "CheckIsDate": if (!PageHelper.CheckIsDateTime(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700009", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为有效的身份证号码 case "CheckIsIdCardNo": if (!PageHelper.CheckIsIdCardNo(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700018", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为正数 case "ChechIsSignless": if (!PageHelper.ChechIsSignless(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700019", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为有效的手机号码 case "CheckIsMobile": if (!PageHelper.CheckIsMobile(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700020", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为正整数类型 case "CheckIsSignlessInteger": if (!PageHelper.CheckIsSignlessInteger(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700021", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为中文类型 case "isChinese": if (!PageHelper.IsChinese(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700023", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion #region 检测是否为非负数 case "CheckIsNonnegativeInteger": if (!PageHelper.CheckIsNonnegativeInteger(csvDataDR[dr["CName"].ToString()].ToString())) { var paras = new List <string>(1) { dr["CName"].ToString() }; var er = new ErrInfo { ErrRowNo = rowNo, ErrType = PageConst.ImportDataErrorType.DataTypeNotMatch, ErrMsg = GetMessage("700022", paras), ErrData = csvDataDR[dr["CName"].ToString()].ToString() }; listErrInfo.Add(er); retVal = false; hasChecked = true; } break; #endregion } } } #endregion } return(retVal); }
public void Log(string msg, ErrInfo e) { Console.WriteLine(msg); Log(string.Format("ErrCode:{0}" + "\r\nErrMsg:{1}", e.ErrCode, e.ErrMsg)); }
/// <summary> /// 如果检测成功,则把数据导入到数据库 /// </summary> /// <param name="tableName"></param> /// <param name="dt"></param> /// <param name="fromImportItemsDT"></param> /// <param name="fromDefaulValueItemsDT"></param> /// <param name="errInfos"></param> virtual public bool ImportDate(string tableName, DataTable dt, DataTable fromImportItemsDT, DataTable fromDefaulValueItemsDT, ref List <ErrInfo> errInfos) { string sql = string.Format("insert into {0}", tableName); string fields; string values; List <SqlParameter> paramList; int j = 0; foreach (DataRow dr in dt.Rows) { j++; fields = "("; values = "("; paramList = new List <SqlParameter>(dt.Rows.Count); //导入文件中的数据 if (fromImportItemsDT != null && fromImportItemsDT.Rows.Count > 0) { foreach (DataRow dr2 in fromImportItemsDT.Rows) { fields += string.Format("{0},", dr2["xColumn"].ToString().Trim()); string pDataSource = new ReplaceParaHelper.ImportCsvReplaceParameter().ReplaceSqlValue( dr2["DataSource"].ToString().Replace("\"", "'"), dr); if (!pDataSource.Equals(string.Empty)) { DataTable pDataSourceDT = DBAccess.DbHelperSQL.Fill(pDataSource); if (pDataSourceDT.Rows.Count > 0) { string value = pDataSourceDT.Rows[0][0].ToString(); paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), value)); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } else { paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), DBNull.Value)); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } } else { paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), dr[dr2["CName"].ToString()].ToString())); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } //paramList.Add(new SqlParameter("@" + dr2["xColumn"].ToString(), dr[dr2["CName"].ToString()].ToString())); //values += "@" + dr2["xColumn"].ToString() + ","; } } //导入默认值的数据 if (fromDefaulValueItemsDT.Rows.Count > 0) { foreach (DataRow dr2 in fromDefaulValueItemsDT.Rows) { fields += string.Format("{0},", dr2["xColumn"].ToString().Trim()); string pDataSource = new ReplaceParaHelper.ImportCsvReplaceParameter().ReplaceSqlValue(dr2["DataSource"].ToString().Replace("\"", "'"), dr); if (!pDataSource.Equals(string.Empty)) { DataTable pDataSourceDT = DBAccess.DbHelperSQL.Query(pDataSource).Tables[0]; if (pDataSourceDT.Rows.Count > 0) { string value = pDataSourceDT.Rows[0][0].ToString(); paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), value)); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } else { paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), DBNull.Value)); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } } else { paramList.Add(new SqlParameter(string.Format("@{0}", dr2["xColumn"].ToString().Trim()), DBNull.Value)); values += string.Format("@{0},", dr2["xColumn"].ToString().Trim()); } } } fields = fields.Substring(0, fields.Length - 1); values = values.Substring(0, values.Length - 1); fields += (")"); values += (")"); string insertSql = string.Format("{0}{1} Values {2};SELECT @@identity AS 'id'", sql, fields, values); try { DbHelper.ExecuteSql(insertSql, paramList); } catch (Exception exception) { var err = new ErrInfo { ErrRowNo = j.ToString(), ErrType = "", ErrData = "", ErrMsg = exception.Message.Replace("'", "") }; errInfos.Add(err); return(false); } } return(true); }