1 public static class DataUtil 2 { 3 #region dataConvert 4 /// <summary> 5 /// 从数据行返回数据实体对象 6 /// </summary> 7 /// <typeparam name="T">数据实体类型</typeparam> 8 /// <param name="row">数据行</param> 9 /// <returns>数据实体对象</returns> 10 public static T GetModel<T>(DataRow row) where T : class, new() 11 { 12 if (row == null) return null; 13 14 T result = new T(); 15 16 Type type = typeof(T); 17 18 System.Reflection.PropertyInfo[] ps = type.GetProperties(); 19 20 foreach (System.Reflection.PropertyInfo p in ps) 21 { 22 if (row.Table.Columns.Contains(p.Name)) 23 { 24 object value = row[p.Name]; 25 26 if (!(value is DBNull)) 27 { 28 try 29 { 30 p.SetValue(result, value, null); 31 } 32 catch 33 { 34 35 } 36 } 37 } 38 } 39 40 return result; 41 } 42 /// <summary> 43 /// 从数据表返回数据实体列表对象 44 /// </summary> 45 /// <typeparam name="T">数据实体类型</typeparam> 46 /// <param name="dt">数据表</param> 47 /// <returns>数据实体列表对象</returns> 48 public static List<T> GetModelList<T>(DataTable dt) where T : class, new() 49 { 50 List<T> list = new List<T>(); 51 foreach (DataRow row in dt.Rows) 52 { 53 list.Add(GetModel<T>(row)); 54 } 55 return list; 56 } 57 58 /// <summary> 59 /// 从数据行集合返回数据实体列表对象 60 /// </summary> 61 /// <typeparam name="T">数据实体类型</typeparam> 62 /// <param name="rows">数据行集合</param> 63 /// <returns>数据实体列表对象</returns> 64 public static List<T> GetModelList<T>(IEnumerable<DataRow> rows) where T : class, new() 65 { 66 List<T> list = new List<T>(); 67 foreach (DataRow row in rows) 68 { 69 list.Add(GetModel<T>(row)); 70 } 71 return list; 72 } 73 #endregion 74 } 75 public static class CommonUtil 76 { 77 public static string GetData(string url) 78 { 79 string sReturn; 80 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 81 req.ContentType = "multipart/form-data"; 82 WebResponse resp = req.GetResponse(); 83 StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8); 84 sReturn = sr.ReadToEnd().Trim(); 85 resp.Close(); 86 sr.Close(); 87 return sReturn; 88 } 89 /// <summary> 90 /// 时间戳转为C#格式时间 91 /// </summary> 92 /// <param name=”timeStamp”></param> 93 /// <returns></returns> 94 public static DateTime GetTime(string timeStamp) 95 { 96 DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); 97 long lTime = long.Parse(timeStamp + "0000000"); 98 TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow); 99 } 100 101 /// <summary> 102 /// DateTime时间格式转换为Unix时间戳格式 103 /// </summary> 104 /// <param name=”time”></param> 105 /// <returns></returns> 106 public static int ConvertDateTimeInt(System.DateTime time) 107 { 108 System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 109 return (int)(time - startTime).TotalSeconds; 110 } 111 public static string SubStr(string content, int length) 112 { 113 return NoHTML(content).Length > length ? NoHTML(content).Trim().Substring(0, length) + "..." : NoHTML(content); 114 } 115 public static string NoHTML(string Htmlstring) 116 { 117 //删除脚本 118 Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); 119 //删除HTML 120 Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase); 121 Htmlstring = Regex.Replace(Htmlstring, @"([/r/n])[/s]+", "", RegexOptions.IgnoreCase); 122 Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase); 123 Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase); 124 Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/", RegexOptions.IgnoreCase); 125 Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase); 126 Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase); 127 Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase); 128 Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase); 129 Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "/xa1", RegexOptions.IgnoreCase); 130 Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "/xa2", RegexOptions.IgnoreCase); 131 Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "/xa3", RegexOptions.IgnoreCase); 132 Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "/xa9", RegexOptions.IgnoreCase); 133 Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);", "", RegexOptions.IgnoreCase); 134 //替换掉 < 和 > 标记 135 Htmlstring.Replace("<", ""); 136 Htmlstring.Replace(">", ""); 137 Htmlstring.Replace("/r/n", ""); 138 //返回去掉html标记的字符串 139 return Htmlstring; 140 } 141 public static string GetCharABC(int index) 142 { 143 if (index > 25) { 144 return (index+1).ToString(); } 145 string[] abcStr = new string[] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; 146 return abcStr[index]; 147 } 148 public static string GetShortTime(DateTime time) 149 { 150 try 151 { 152 if (time.ToShortDateString() == DateTime.Now.ToShortDateString()) 153 { 154 return time.ToString("HH:mm"); 155 } 156 else if (time.Year != DateTime.Now.Year) { 157 return time.ToString("yyyy-MM-dd"); 158 } 159 else 160 { 161 return time.ToString("MM-dd"); 162 } 163 } 164 catch (Exception) 165 { 166 return DateTime.Now.ToString("MM-dd"); 167 } 168 169 170 } 171 public static string ContentTypConvert(string ptype) 172 { 173 switch (ptype) 174 { 175 case "application/msword": 176 ptype = ".doc"; 177 break; 178 case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": 179 ptype = ".docx"; 180 break; 181 case "application/pdf": 182 ptype = ".pdf"; 183 break; 184 case "application/vnd.ms-excel": 185 ptype = ".xls"; 186 break; 187 case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": 188 ptype = ".xlsx"; 189 break;//application/octet-stream 和 application/x-zip-compressed 190 case "application/octet-stream": 191 ptype = ".rar"; 192 break; 193 case "application/x-zip-compressed": 194 ptype = ".zip"; 195 break; 196 case "image/jpeg": 197 ptype = ".jpg"; 198 break; 199 case "image/png": 200 ptype = ".png"; 201 break; 202 default: 203 ptype = ""; 204 break; 205 } 206 return ptype; 207 } 208 /// <summary> 209 /// 特殊字符清空 210 /// </summary> 211 /// <param name="strMessage"></param> 212 /// <returns></returns> 213 public static string StringClear(string strMessage) 214 { 215 string[] aryReg = { "!", "@", "#", "$", "^", "*", "'", "(", ")", "<", ">", "%", "\"\"", ",", ">=", "=<", "-", "_", ";", "||", "[", "]", "&", "/", "-", "|", "?", ":", " ", }; 216 for (int i = 0; i < aryReg.Length; i++) 217 { 218 strMessage = strMessage.Replace(aryReg[i], string.Empty); 219 } 220 return strMessage; 221 } 222 223 public static List<string> GetStrImgList(string html) 224 { 225 List<string> list = new List<string>(); 226 Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase); 227 // 搜索匹配的字符串 228 MatchCollection matches = regImg.Matches(html); 229 // 取得匹配项列表 230 foreach (Match match in matches) { 231 list.Add(match.Groups["imgUrl"].Value); 232 } 233 return list; 234 } 235 }