using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Security.Cryptography; namespace HRPOWER.BLL
{
/// <summary>
/// 业务逻辑层基类
/// </summary>
public class BaseClass
{
/// <summary>
/// 屏幕宽度
/// </summary>
private static Decimal WidthPercent; /// <summary>
/// 屏幕高度
/// </summary>
private static Decimal HeightPercent; /// <summary>
/// 根据列名字符串数组,创建自定义DataTable
/// </summary>
/// <param name="sList">列名字符串数组</param>
/// <returns>DataTable</returns>
public static DataTable CreateSelfDataTable(String[] sList)
{
DataTable _dtSelf = new DataTable(); foreach (String s in sList)
{
_dtSelf.Columns.Add(s);
}
_dtSelf.AcceptChanges(); return _dtSelf;
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage, String sTitle)
{
return DialogMessage(sMessage,
sTitle,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Information);
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <param name="mbbButtons">MessageBoxButtons枚举</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage,
String sTitle,
System.Windows.Forms.MessageBoxButtons mbbButtons)
{
return DialogMessage(sMessage, sTitle, mbbButtons, System.Windows.Forms.MessageBoxIcon.Information);
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <param name="mbbButtons">MessageBoxButtons枚举</param>
/// <param name="mbiIcon">MessageBoxIcon枚举</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage,
String sTitle,
System.Windows.Forms.MessageBoxButtons mbbButtons,
System.Windows.Forms.MessageBoxIcon mbiIcon)
{
return System.Windows.Forms.MessageBox.Show(sMessage, sTitle, mbbButtons, mbiIcon);
}
/// <summary>
/// 加密一个字符串
/// </summary>
/// <param name="vStringToEncrypt">待要去加密的字符串</param>
/// <returns>返回一个加密后的字符串</returns>
public static String Encrypt(String vStrToEncrypt)
{
byte[] key = { };
byte[] IV = { , , , , , , , };
byte[] inputByteArray;
String vEncryptKey = "!@#$1234";
try
{
key = System.Text.Encoding.UTF8.GetBytes(vEncryptKey.Substring(, ));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = System.Text.Encoding.UTF8.GetBytes(vStrToEncrypt);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock(); return Convert.ToBase64String(ms.ToArray());
}
catch (System.Exception ex)
{
throw ex;
}
}
/// <summary>
/// 对一进行加密的字符串进行解密
/// </summary>
/// <param name="vStringToDecrypt">待要去解密的字符串</param>
/// <returns>返回一个明文</returns>
public static String Decrypt(String vStrToDecrypt)
{
vStrToDecrypt = vStrToDecrypt.Trim().Replace(" ", "+"); //process blank char for the encrypt method.
byte[] key = { };
byte[] IV = { , , , , , , , };
byte[] inputByteArray = new byte[vStrToDecrypt.Length];
String vDecryptKey = "!@#$1234";
try
{
key = System.Text.Encoding.UTF8.GetBytes(vDecryptKey.Substring(, ));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = Convert.FromBase64String(vStrToDecrypt); System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock(); System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (System.Exception ex)
{
throw ex;
}
}
/// <summary>
/// 定义一个操作类型
/// ADD表示新增,EDIT表示修改,DEL表示删除
/// </summary>
public enum OperationType
{
ADD = ,
EDIT = ,
DEL =
} /// <summary>
/// 定义照片类型
/// </summary>
public enum PictureSize
{
/// <summary>
/// 一代身份证
/// </summary>
ID_CARD1 = , /// <summary>
/// 驾驶证
/// </summary>
DRIVER_CARD = , /// <summary>
/// 护照
/// </summary>
PASSPORT_CARD = , /// <summary>
/// 二代身份证
/// </summary>
ID_CARD2 = , /// <summary>
/// 二代身份证背面,或类似尺寸证件的拍照使用
/// </summary>
ID_CARD2_BOTTOM = , /// <summary>
/// 台胞证
/// </summary>
TAIWAN_CARD = , /// <summary>
/// 港澳通行证
/// </summary>
HKMACAO_CARD = , /// <summary>
/// 广东省居住证
/// </summary>
RESIDENCE_CARD = , /// <summary>
/// 军官证
/// </summary>
ARMY_CARD = , /// <summary>
/// 户口本
/// </summary>
HOUSEHOLD_CARD =
} /// <summary>
/// 定义照片颜色类型
/// </summary>
public enum PictureColor
{
/// <summary>
/// 黑白照
/// </summary>
WHITEBLACK = ,
/// <summary>
/// 彩色照
/// </summary>
FULLCOLOR =
} /// <summary>
/// 定义绑定控件数据员类型
/// </summary>
public enum DataSourceType
{
/// <summary>
/// 表示DataTable形式的数据员
/// </summary>
DataCollection = ,
/// <summary>
/// 表示Items形式数据员
/// </summary>
DataItems =
}
/// <summary>
/// 加载一个“请选择”值到Combobox控件
/// </summary>
/// <param name="dtSource">Combobox控件数据源</param>
/// <param name="sValue">ValueMember字段</param>
/// <param name="sDisplay">DisplayMember字段</param>
/// <returns></returns>
public static DataTable LoadInvalidValueToCombobox(DataTable dtSource, String sValue, String sDisplay)
{
DataRow _drNew = dtSource.NewRow();
_drNew[sValue] = ;
_drNew[sDisplay] = "请选择";
dtSource.Rows.InsertAt(_drNew, );
dtSource.AcceptChanges(); return dtSource;
}
/// <summary>
/// 加载一个“全部单位”值到Combobox控件
/// </summary>
/// <param name="dtSource">Combobox控件数据源</param>
/// <param name="sValue">ValueMember字段</param>
/// <param name="sDisplay">DisplayMember字段</param>
/// <returns></returns>
public static DataTable LoadInvalidValueToCombobox1(DataTable dtSource, String sValue, String sDisplay)
{
DataRow _drNew = dtSource.NewRow();
_drNew[sValue] = ;
_drNew[sDisplay] = "全部单位";
dtSource.Rows.InsertAt(_drNew, );
dtSource.AcceptChanges(); return dtSource;
} /// <summary>
/// 验证字符串是否为正整数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNumeric(string str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]*[1-9][0-9]*$");
return reg1.IsMatch(str);
}
/// <summary>
/// 验证字符串是否为0或正浮点类型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isDouble(String str)
{
//正则表达式验证,返回一个bool类型
bool isReturn = false; try
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$");
if (reg1.IsMatch(str) == true || IsNumeric(str) == true) isReturn = true; ;
}
catch
{
isReturn = false;
} return isReturn;
}
/// <summary>
/// 验证固定电话号码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isTel(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^(\d{3,4}-)?\d{7,8}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证手机号码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isMobile(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[1][3-8]\d{9}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isNumber(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\d+$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证邮政编码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isPost(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\d{6}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证邮件地址
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isEmail(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$");
return reg1.IsMatch(str); } /// <summary>
/// 验证IP地址
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isIP(String str)
{
return System.Text.RegularExpressions.Regex.IsMatch(str,
@"^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}$");
} /// <summary>
/// 验证输入字符串只能为数字或字母
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNumberOrChar(String str)
{
return System.Text.RegularExpressions.Regex.IsMatch(str, "^([0-9]|[A-Z]|[a-z])+$");
} //object类型转十进制
public static decimal ConvertoDecimal(object o)
{
decimal number = ;
try
{
if (o != null && o.ToString() != "")
number = Convert.ToDecimal(o); }
catch
{
number = ;
} return number;
} //判断是否字符串是否为日期类型
public static DateTime isDataTime(string strDate)
{
DateTime dtDate; if (DateTime.TryParse(strDate, out dtDate))
{
return Convert.ToDateTime(strDate);
}
else
{
return Convert.ToDateTime("1753-1-1");
} } /// <summary>
/// 生成GUID码
/// </summary>
/// <returns></returns>
public static string getGUID()
{
System.Guid guid = new Guid();
guid = Guid.NewGuid();
string str = guid.ToString();
return str;
}
/// <summary>
/// 判断文件夹是否存在,不存在就创建
/// </summary>
/// <param name="sFileFolder">文件夹路径</param>
/// <returns>文件夹路径</returns>
public static string GetFileFolder(String sFileFolder)
{
if (!System.IO.Directory.Exists(sFileFolder))
{
System.IO.Directory.CreateDirectory(sFileFolder);
}
return sFileFolder;
}
/// <summary>
/// 生成一个错误日志
/// </summary>
/// <param name="sErrMsg">错误信息</param>
public static void LogErrorLog(string sErrMsg)
{
String _sFolder = System.Configuration.ConfigurationManager.AppSettings["Error_Log"]; _sFolder = GetFileFolder(_sFolder);
String _sFile = String.Format("{0}{1}.txt", _sFolder, DateTime.Now.ToString("yyyyMMdd")); System.IO.FileInfo _fiFile = new System.IO.FileInfo(_sFile);
System.IO.StreamWriter _swTxt; if (!_fiFile.Exists)
{
_swTxt = _fiFile.CreateText();
}
else
{
_swTxt = _fiFile.AppendText();
} _swTxt.WriteLine(String.Format("{0}-----{1}", DateTime.Now.ToString("HH:mm:ss"), sErrMsg));
_swTxt.Close();
} Boolean isFind = false; //查找文件是否找到标识位
/// <summary>
/// 查找指定文件,返回查找文件路径
/// </summary>
/// <param name="sFileName">待查找的文件名</param>
/// <returns>返回查找文件路径</returns>
public static String SearchFile(String sFileName)
{
System.IO.DriveInfo[] driList = System.IO.DriveInfo.GetDrives();
BaseClass _bc = new BaseClass(); String _sFileName = String.Empty; foreach (System.IO.DriveInfo dri in driList)
{
_sFileName = _bc.FindFile(dri.RootDirectory, sFileName);
String _tmp = _sFileName.Substring(_sFileName.LastIndexOf(@"\") + ); if (_tmp == sFileName)
{
break;
}
} return _sFileName;
} private String FindFile(System.IO.DirectoryInfo diDirectory, String sFileName)
{
String sFindFile = String.Empty;
try
{
foreach (System.IO.FileInfo fi in diDirectory.GetFiles())
{
if (fi.Name == sFileName)
{
sFindFile = fi.FullName;
isFind = true;
break;
}
} foreach (System.IO.DirectoryInfo di in diDirectory.GetDirectories())
{
if (!isFind)
sFindFile = FindFile(di, sFileName);
else
break;
}
}
catch
{
throw new System.IO.FileNotFoundException("文件不能找到");
} return sFindFile;
}
/// <summary>
/// 根据屏幕分辨率自动调整控件位置与大小
/// </summary>
/// <param name="cContainer">要调整的控件</param>
/// <param name="ScreenWidth">当前显示器分辨率宽度</param>
/// <param name="ScreenHeight">当前显示器分辨率高度</param>
public static void AutoChangeControlSizeByScreen(System.Windows.Forms.Control cContainer,
int ScreenWidth,
int ScreenHeight)
{
cContainer.SuspendLayout();
//显示屏大于1280或1024不处理
if (ScreenWidth > || ScreenHeight > )
{
WidthPercent = ;
HeightPercent = ;
}
else
{
WidthPercent = Math.Round((decimal)ScreenWidth / , );
HeightPercent = Math.Round((decimal)ScreenHeight / , );
}
//处理传过来控件本身等比缩放
cContainer.Left = (int)Math.Ceiling((decimal)cContainer.Left * WidthPercent);
cContainer.Top = (int)Math.Ceiling((decimal)cContainer.Top * HeightPercent);
cContainer.Width = (int)Math.Ceiling((decimal)cContainer.Width * WidthPercent);
cContainer.Height = (int)Math.Ceiling((decimal)cContainer.Height * HeightPercent);
ChangeControl(cContainer);
cContainer.ResumeLayout();
} private static void ChangeControl(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
c.Left = (int)Math.Ceiling((decimal)c.Left * WidthPercent);
c.Top = (int)Math.Ceiling((decimal)c.Top * HeightPercent);
c.Width = (int)Math.Ceiling((decimal)c.Width * WidthPercent);
c.Height = (int)Math.Ceiling((decimal)c.Height * HeightPercent);
c.Font = new System.Drawing.Font("微软雅黑", c.Font.Size * (float)((HeightPercent + WidthPercent) / )); if (c.HasChildren)
{
ChangeControl(c);
}
}
} /// <summary>
/// 统一设置字体为微软雅黑12pt
/// </summary>
/// <param name="cContainer">要调整的控件</param>
public static void ChangeFont(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
c.Font = new System.Drawing.Font("微软雅黑", );
if (c.HasChildren) ChangeFont(c);
}
} /// <summary>
/// 判断文件夹是否存在,不存在创建
/// 同时返回文件夹路径
/// </summary>
/// <param name="sFolderPath">文件夹绝对路径</param>
/// <returns></returns>
public static String IsFolderExist(String sFolderPath)
{
if (System.IO.Directory.Exists(sFolderPath) == false)
{
System.IO.Directory.CreateDirectory(sFolderPath);
}
return sFolderPath;
} /// <summary>
/// 导出Excel的文件名称
/// </summary>
/// <param name="titleName">导出标题名称</param>
/// <param name="suffixName">导出序列号(SN)</param>
/// <returns></returns>
public static String ExcelFileName(String titleName, String suffixName)
{
String strName;
if (String.IsNullOrEmpty(suffixName))
{
strName = DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + titleName;
}
else
{
strName = DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + titleName + "_" + suffixName;
}
return strName;
} /// <summary>
/// 导出Excel的文件名称
/// </summary>
/// <param name="titleName">导出标题名称</param>
/// <returns></returns>
public static String ExcelFileName(String titleName)
{
return ExcelFileName(titleName, String.Empty);
}
}
}

新增:

1、字符串转数组

 /// <summary>
/// 包含“,”的字符串转数组
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string[] mArray(string str)
{
string[] mMsg;
if (str.IndexOf(',') != -)
{
mMsg = str.Split(','); }
else
{
mMsg = new string[];
mMsg[] = str;
}
return mMsg; }

2、自定义数组

/// <summary>
/// 根据列名字符串数组,创建自定义DataTable
/// </summary>
/// <param name="sList">列名字符串数组</param>
/// <returns>DataTable</returns>
public static DataTable CreateSelfDataTable(String[] sList)
{
DataTable _dtSelf = new DataTable(); foreach (String s in sList)
{
_dtSelf.Columns.Add(s);
}
_dtSelf.AcceptChanges(); return _dtSelf;
}

3、临时创建一个表

  private static DataTable CreatTable()
{
DataTable dtSource = new DataTable();
dtSource.Columns.Add("NAME", typeof(string));
dtSource.Columns.Add("DisMembers", typeof(string));
//一百万行数据
for (int i = ; i < ; i++)
{
DataRow dr = dtSource.NewRow();
dr["NAME"] = i;
dr["DisMembers"] = i;
dtSource.Rows.Add(dr);
}
dtSource.AcceptChanges();
return dtSource;
}

WinForm BaseClass类常用通用方法的更多相关文章

  1. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  2. File类常用的方法与字节流类方法简介

    File类常用的方法 获取功能的方法 public String getAbsolutePath() :返回此File的绝对路径名字符串. public String getPath() :将此Fil ...

  3. Object类中通用方法之:toString()方法

    1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...

  4. WebDriverWait类以及类常用的方法

    WebDriverWait类提供了显式等待和隐式等待,显式等待的等待时间是固定的,固定了10s就必须等待10s,隐式等待的等待时间是个范围,例如最大10s,那么如果在3s的时候程序达到预期的结果,那么 ...

  5. Collections集合工具类常用的方法

    java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...

  6. Calendar类常用需求方法

    经常处理一些日期相关的信息,Calendar类是处理日期的常用类,写下几个方法,不用重复造轮子了. 1.求上一天,下一天的日期 Date now = new Date();Calendar c = C ...

  7. QueryRunner类常用的方法

    public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLEx ...

  8. Spring JdbcTemplate类常用的方法

    execute(String  sql) 可执行任何sql语句,但返回值是void,所以一般用于数据库的新建.修改.删除和数据表记录的增删改. int  update(String sql) int  ...

  9. js常用通用方法

    验证身份证详细方法 function isCardNo(pId) { var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] ...

随机推荐

  1. cocos2d-x事件EventListenerTouchOneByOne没反应

    今天写了 cocos2d-x事件EventListenerTouchOneByOne,发现死活没反应,原代码复制到新工程没问题啊, 后来发现cocostudio用的基础容器(ccui.Layout:c ...

  2. 【BZOJ-2597】剪刀石头布 最小费用最大流

    2597: [Wc2007]剪刀石头布 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1016  Solved:  ...

  3. jquery使用案例

    表单验证 Dom实现表单验证 通过在form标签的submit上绑定一个onclick事件,用户点击事,触发这个事件,执行Checkvalid()函数进行对表单中的元素值验证,验证通过之后,继续让su ...

  4. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  5. Install ArchLinux(draft)

    1.# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync 2. # timedatectl ...

  6. ionic 获取手机所在位置

    之前项目中需要使用到定位功能,前边的文章提到的坐标位置是有问题的,是国际坐标,国内的环境使用google地图会出现问题,所以需要使用国内的地图进行坐标解析,因为国内和国外的坐标体系不一致,需要通过转换 ...

  7. 使用Python解析JSON数据

    使用Python解析百度API返回的JSON格式的数据 # coding:utf-8 # !/usr/bin/env python import matplotlib.pyplot as plt fr ...

  8. 10Spring高级----青软S2SH(笔记)

  9. ActiveMQ中的Destination高级特性(一)

    ---------------------------------------------------------------------------------------- Destination ...

  10. mysql基于“报错”的注入

    报错是如何转为xss的? mysql语句在页面报错,泄露信息 ===================================================================== ...