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 }