是从一个asp.net mvc的项目里看到的。挺实用的。


通过身份证号码获取出生日期和性别




通过身份证号码获取出生日期和性别

 #region 由身份证获得出生日期
public static string CardBrith(string CardNo)
{
return CardNo.Substring(, ) + "-" + CardNo.Substring(, ) + "-" + CardNo.Substring(, );
}
#endregion #region 由身份证获得性别
public static string CardSex(string CardNo)
{
string sSex = "";
int sex = Convert.ToInt16(CardNo.Substring(, ));
if (sex % == )//性别代码为偶数是女性奇数为男性
{
sSex = "女";
}
else
{
sSex = "男";
}
return sSex;
}
#endregion






验证身份证号码:

 #region 验证身份证号码
/// <summary>
/// 验证身份证号码,正确返回true
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public static bool CardNO(string Id)
{ long n = ; if (long.TryParse(Id.Remove(), out n) == false || n < Math.Pow(, ) || long.TryParse(Id.Replace('x', '').Replace('X', ''), out n) == false)
{ return false;//数字验证 } string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91"; if (address.IndexOf(Id.Remove()) == -)
{ return false;//省份验证 } string birth = Id.Substring(, ).Insert(, "-").Insert(, "-"); DateTime time = new DateTime(); if (DateTime.TryParse(birth, out time) == false)
{ return false;//生日验证 } string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(','); string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(','); char[] Ai = Id.Remove().ToCharArray(); int sum = ; for (int i = ; i < ; i++)
{ sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString()); } int y = -; Math.DivRem(sum, , out y); if (arrVarifyCode[y] != Id.Substring(, ).ToLower())
{ return false;//校验码验证 } return true;//符合GB11643-1999标准 }
#endregion






字符串解码

 #region 字符串解码
/// <summary>
/// 字符串解码
/// </summary>
/// <param name="str">原字符</param>
/// <returns>解码后的字符</returns>
public static string StrDecode(string str)
{
if (string.IsNullOrEmpty(str)) { return str; }
return System.Web.HttpUtility.HtmlDecode(str); ;
}
#endregion







字符串编码

 #region 字符串编码
/// <summary>
/// 目前只做字符串编码
/// </summary>
/// <param name="str">原字符</param>
/// <returns>编码后的字符</returns>
public static string StrEncode(string str)
{
if (string.IsNullOrEmpty(str)) { return str; }
return System.Web.HttpUtility.HtmlEncode(str);
}
#endregion






获得分页记录

     #region 获得分页记录
/// <summary>
/// 获得分页记录,返回DataTable类型
/// </summary>
/// <param name="tblName">表名</param>
/// <param name="strGetFields">需返回的字段</param>
/// <param name="strWhere">条件</param>
/// <param name="OrderType">排序字段</param>
/// <param name="PageIndex">当前页面</param>
/// <param name="PageSize">页尺寸</param>
/// <returns>返回DataTable类型</returns>
public static DataTable GetPageData(string tblName, string strGetFields, string strWhere, string OrderType, int PageIndex, int PageSize)
{
SqlParameter[] para = {
new SqlParameter("@Table", SqlDbType.VarChar, ){Value=tblName},//表名
new SqlParameter("@Fields", SqlDbType.VarChar, ){Value=strGetFields},//返回的列
new SqlParameter("@Where", SqlDbType.VarChar, ){Value=strWhere},//where条件
new SqlParameter("@OrderBy",SqlDbType.VarChar, ){Value=OrderType},//排序
new SqlParameter("@CurrentPage",SqlDbType.Int,){Value=PageIndex},//页码
new SqlParameter("@PageSize", SqlDbType.Int,){Value=PageSize}//页尺寸
};
DataTable dt = new DataTable();
XBSQL.RunProc("Pages", out dt, para);
return dt;
}
#endregion






获得符合条件指定列的和

     #region 获得符合条件指定列的和
/// <summary>
/// 返回符合条件指定列的和
/// </summary>
/// <param name="Field">列</param>
/// <param name="TableName">表名</param>
/// <param name="WhereSql">条件</param>
/// <returns></returns>
public static double RsSum(string Field, string TableName, string WhereSql)
{
string Num = XBSQL.EScalar("select sum(" + Field + ") from " + TableName + " where " + WhereSql + "").ToString();
Num = (string.IsNullOrEmpty(Num)) ? "" : Num;
return Convert.ToDouble(Num);
} #endregion






获取记录总和

     #region 获得记录总数
/// <summary>
/// 获得满足条件的记录总数
/// </summary>
/// <param name="TableName">表名</param>
/// <param name="WhereSql">条件</param>
/// <returns></returns>
public static int RsCount(string TableName, string WhereSql)
{
int i = ;
int.TryParse(XBSQL.EScalar("select Count(*) from " + TableName + " where " + WhereSql + "").ToString(), out i);
return i;
//return Convert.ToInt32(XBSQL.EScalar("select Count(*) from " + TableName + " where " + WhereSql + ""));
}
#endregion













根据参数读取数据库,获取多条记录单个字段
  #region 根据参数读取数据库,获取多条记录单个字段
/// <summary>
/// 获取多条记录单个字段
/// </summary>
/// <param name="field"></param>
/// <param name="table"></param>
/// <param name="where"></param>
/// <returns></returns>
public static string RDSQL(string field, string table, string where)
{
StringBuilder Str = new StringBuilder();
try
{
string sql = "select " + field + " from " + table + " where " + where + "";
SqlDataReader dr = XBSQL.EReader(sql);
while (dr.Read())
{
Str.Append("," + dr[].ToString().Trim());
}
dr.Close();
if (Str.Length > )
{
Str.Remove(, );
return Str.ToString();
}
else
{
return "";
}
}
catch (Exception Error)
{ }
finally
{
Str.Length = ;
}
return "";
}
#endregion








字符串截取

    #region 字符串截取
/// <summary>
/// str为要进行截取的字符串,start是第一个关键字(字符串),last是第二个关键字(字符串),n截取字符串方式
/// </summary>
/// <param name="str"></param>
/// <param name="start"></param>
/// <param name="last"></param>
/// <param name="n"></param>
/// <returns></returns>
public static string GetContent(string str, string start, string last, int n)
{
string ResStr = "";
if (str.ToLower().IndexOf(start.ToLower()) >= )
{
if (str.ToLower().IndexOf(last.ToLower()) >= )
{
switch (n)
{
//左右都截取(都取前面)(包含关键字)
case : ResStr = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower()));
ResStr = ResStr.Substring(, ResStr.ToLower().IndexOf(last.ToLower()) + last.Length); break;
//左右都截取(都取前面)(去除关键字)
case : ResStr = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length);
ResStr = ResStr.Substring(, ResStr.ToLower().IndexOf(last.ToLower())); break;
default: ResStr = ""; break;
}
}
}
return ResStr;
}
public static string GetContent(string str, string start, int n)
{
string ResStr = "";
switch (n)
{
//只往左截取(取前面的)(包含关键字)
case : ResStr = str.Substring(, str.ToLower().IndexOf(start.ToLower()) + start.Length); break;
//只往左截取(取前面的)(去除关键字)
case :
int StrIndex = str.ToLower().IndexOf(start.ToLower());
if (StrIndex > )
{
ResStr = str.Substring(, StrIndex);
}
break;
//只往右截取(取前面的)(包含关键字)
case : ResStr = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); break;
//只往右截取(取前面的)(去除关键字)
case : ResStr = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); break;
default: ResStr = ""; break;
}
return ResStr;
}
#endregion






判断ip格式

  #region 判断是否是IP格式
/// <summary>
/// 判断是否是IP地址格式 0.0.0.0
/// </summary>
/// <param name="str1">待判断的IP地址</param>
/// <returns>true or false</returns>
public static bool IsIPAddress(string str1)
{
if (str1 == null || str1 == string.Empty || str1.Length < || str1.Length > ) return false;
string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
return regex.IsMatch(str1);
}
#endregion






获取ip

 #region 获得IP
/// <summary>
/// 取得客户端真实IP。如果有代理则取第一个非内网地址
/// </summary>
public static string IPAddress
{
get
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (result != null && result != String.Empty)
{
//可能有代理
if (result.IndexOf(".") == -) //没有"."肯定是非IPv4格式
result = null;
else
{
if (result.IndexOf(",") != -)
{
//有",",估计多个代理。取第一个不是内网的IP。
result = result.Replace(" ", "").Replace("\"", "");
string[] temparyip = result.Split(",;".ToCharArray());
for (int i = ; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i])
&& temparyip[i].Substring(, ) != "10."
&& temparyip[i].Substring(, ) != "192.168"
&& temparyip[i].Substring(, ) != "172.16.")
{
return temparyip[i]; //找到不是内网的地址
}
}
}
else if (IsIPAddress(result)) //代理即是IP格式
return result;
else
result = null; //代理中的内容 非IP,取IP
}
}
string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != String.Empty) ? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] : HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (result == null || result == String.Empty)
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
}
#endregion







转换成日期格式

 #region 转换成日期格式
/// <summary>
/// 转换成日期格式,非日期返回空值
/// </summary>
/// <param name="Str">值</param>
/// <returns></returns>
public static string ToDate(string Str, string Format)
{
DateTime LDate;
DateTime dt1 = DateTime.Parse("1900-01-01");
DateTime dt2 = DateTime.Parse("9999-12-31");
if (DateTime.TryParse(Str, out LDate) && DateTime.Compare(LDate, dt1) > && DateTime.Compare(LDate, dt2) < )
{
Str = LDate.ToString("" + Format + "");
}
else
{
Str = "";
}
return Str.Trim();
}
#endregion

c#一些常用的方法集合的更多相关文章

  1. Dynamics CRM 常用 JS 方法集合

    JS部分 拿到字段的值 var value= Xrm.Page.getAttribute("attributename").getValue(); Xrm.Page.getAttr ...

  2. Dynamics CRM 常用 C# 方法集合

    Plugin(C#) 分派 AssignRequest assign = new AssignRequest(); assign.Assignee = prEntity["ownerid&q ...

  3. javascript技巧及常用事件方法集合(全)

    事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcE ...

  4. 常用js方法集合

    var func={ //对象转jsonstring getJsonStr: function(jsonObj) { var temp = []; for (var key in jsonObj) { ...

  5. 大数据学习day15----第三阶段----scala03--------1.函数(“_”的使用, 函数和方法的区别)2. 数组和集合常用的方法(迭代器,并行集合) 3. 深度理解函数 4 练习(用java实现类似Scala函数式编程的功能(不能使用Lambda表达式))

    1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter.map.groupBy.so ...

  6. (转)Android之常用功能方法大集合

    这些,都是Andorid中比较常用的方法和功能,在网上搜集整理一下记录之,以备不时之需.由于经过多次转载,源文作者不确凿,在此申明,敬请见谅.不得不赞,非常实用. 1.判断sd卡是否存在 boolea ...

  7. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  8. WebAPi添加常用扩展方法及思维发散

    前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...

  9. C#操作XML方法集合

    一 前言 先来了解下操作XML所涉及到的几个类及之间的关系  如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家 * 1 XMLElement 主要是针对节点的一些属性进行操 ...

随机推荐

  1. log4net 配置完成后发现不能输出日志的解决方法

    配置好log4net后发现日志不能输出,打开调试看一下几个属性都是false,(比如isdebugenable =false)这其实是项目的启动时候没有加入一行声明代码导致的,可以在程序的Assemb ...

  2. vue.js--基础事件定义,获取数据,执行方法传值

    <template> <div id="app"> <h1>{{ msg }}</h1> <br> <button ...

  3. 【[HEOI2012]采花】

    \(HH\)的项链加强版,数据范围和题意都加强了 题意大概:给出n个数,求区间出现次数>=2的数的个数. 一眼莫队,可是我还不会莫队啊 那就树状数组吧 回忆一下\(HH\)的项链,套路差不多,那 ...

  4. mybatis学习记录六——一对一、一对多和多对多查询

    9       订单商品数据模型 9.1     数据模型分析思路 1.每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程. 2.每张表重要的字段设置 非空 ...

  5. 【洛谷P3818】小A和uim之大逃离 II

    小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 #include<iostream> ...

  6. Mybatis自动生成的BO对象继承公共父类(BO中过滤掉公共属性)

    使用mybatis的代码生成工具:mybatis-generator,如果自动生成的BO都有公共的属性,则可以指定这些BO继承父类(父类中定义公共属性) 1.定义父类 注意:属性public,不要使用 ...

  7. c# 本地完整缓存组件

    用了一段时间java,java实现服务端程序很简单,有很多公共开源的组件或者软件.但是c#的很少. 现在准备自己写点东西,学习下新的东西,总结下c#的内容以及我们经常用的内容,抽离成类,组件,模型.方 ...

  8. NEC 框架规范 animation

    /* animation *//* 淡入 */.a-fadein{-webkit-animation-name:fadein;-moz-animation-name:fadein;-ms-animat ...

  9. mybatis笔记之一次插入多条数据sql语句写法

    <insert id="insertList" parameterType="java.util.List"> insert into balanc ...

  10. Sql Server 查看存储过程最后修改时间

    Sql Server 查看存储过程最后修改时间 select * from sys.procedures order by modify_date desc