如何获得安全的数据类型?
在开发过程中,我们难免遇到类型转换问题,有时我们一般采用直接转换来完成,这样每次遇到都要重复使用,我这里偷个懒,写了个类,可以实现“复用”了。^-^.
1 public class Utility
2
3 {
4
5 /// <summary>
6
7 /// 换行符
8
9 /// </summary>
10
11 public const string NEWLINE = "\b\r";
12
13
14
15 /// <summary>
16
17 /// 设置下拉框的数据
18
19 /// </summary>
20
21 /// <param name="list">下拉框</param>
22
23 /// <param name="value">数据</param>
24
25 /// <returns></returns>
26
27 public static bool SetDropDownListValue(System.Web.UI.WebControls.DropDownList list, string value)
28
29 {
30
31 //判断是否有效
32
33 if (null == list)
34
35 {
36
37 //如果无效直接返回
38
39 return false;
40
41 }
42
43
44
45 //判断是否有数据
46
47 if (0 == list.Items.Count)
48
49 {
50
51 //如果没有数据返回失败
52
53 return false;
54
55 }
56
57
58
59 //尝试设置数据
60
61 try
62
63 {
64
65 //设置数据
66
67 list.SelectedValue = value;
68
69
70
71 //成功
72
73 return true;
74
75 }
76
77 catch
78
79 {
80
81 //返回失败
82
83 return false;
84
85 }
86
87 }
88
89
90
91 /// <summary>
92
93 /// 设置OptionList的数据
94
95 /// </summary>
96
97 /// <param name="list">下拉框</param>
98
99 /// <param name="value">数据</param>
100
101 /// <returns></returns>
102
103 public static bool SetOptionListValue(System.Web.UI.WebControls.RadioButtonList list, string value)
104
105 {
106
107 //判断是否有效
108
109 if (null == list)
110
111 {
112
113 //如果无效直接返回
114
115 return false;
116
117 }
118
119
120
121 //判断是否有数据
122
123 if (0 == list.Items.Count)
124
125 {
126
127 //如果没有数据返回失败
128
129 return false;
130
131 }
132
133
134
135 //尝试设置数据
136
137 try
138
139 {
140
141 //设置数据
142
143 list.SelectedValue = value;
144
145
146
147 //成功
148
149 return true;
150
151 }
152
153 catch
154
155 {
156
157 //返回失败
158
159 return false;
160
161 }
162
163 }
164
165
166
167 /// <summary>
168
169 /// 安全的获得时间
170
171 /// </summary>
172
173 /// <param name="value"></param>
174
175 /// <param name="defaultValue"></param>
176
177 /// <returns></returns>
178
179 public static DateTime SafeGetDateTime(object value, DateTime defaultValue)
180
181 {
182
183 try
184
185 {
186
187 //判断类型
188
189 if (null == value || value is DBNull)
190
191 {
192
193 return defaultValue;
194
195 }
196
197 else if (value is DateTime)
198
199 {
200
201 return (DateTime)value;
202
203 }
204
205 else if (value is string)
206
207 {
208
209 //尝试转换
210
211 return DateTime.Parse((string)value);
212
213 }
214
215 else
216
217 {
218
219 //强制转换
220
221 return System.Convert.ToDateTime(value);
222
223 }
224
225 }
226
227 catch
228
229 {
230
231 //失败返回默认数据
232
233 return defaultValue;
234
235 }
236
237 }
238
239
240
241 /// <summary>
242
243 /// 安全获得Bool变量
244
245 /// </summary>
246
247 /// <param name="value"></param>
248
249 /// <param name="defaultValue"></param>
250
251 /// <returns></returns>
252
253 public static bool SafeGetBoolean(object value, bool defaultValue)
254
255 {
256
257 try
258
259 {
260
261 //判断类型
262
263 if (null == value || value is DBNull)
264
265 {
266
267 return defaultValue;
268
269 }
270
271 else if (value is bool)
272
273 {
274
275 return (bool)value;
276
277 }
278
279 else if (value is string)
280
281 {
282
283 //尝试转换
284
285 return bool.Parse((string)value);
286
287 }
288
289 else
290
291 {
292
293 //强制转换
294
295 return System.Convert.ToBoolean(value);
296
297 }
298
299 }
300
301 catch
302
303 {
304
305 //失败返回默认数据
306
307 return defaultValue;
308
309 }
310
311 }
312
313
314
315 /// <summary>
316
317 /// 安全的获得整数
318
319 /// </summary>
320
321 /// <param name="value"></param>
322
323 /// <param name="defaultValue"></param>
324
325 /// <returns></returns>
326
327 public static int SafeGetInteger(object value, int defaultValue)
328
329 {
330
331 try
332
333 {
334
335 //判断类型
336
337 if (null == value || value is DBNull)
338
339 {
340
341 return defaultValue;
342
343 }
344
345 else if (value is int)
346
347 {
348
349 return (int)value;
350
351 }
352
353 else if (value is string)
354
355 {
356
357 //尝试转换
358
359 return int.Parse((string)value);
360
361 }
362
363 else
364
365 {
366
367 //强制转换
368
369 return System.Convert.ToInt32(value);
370
371 }
372
373 }
374
375 catch
376
377 {
378
379 //失败返回默认数据
380
381 return defaultValue;
382
383 }
384
385 }
386
387
388
389 /// <summary>
390
391 /// 安全的获得Decimal
392
393 /// </summary>
394
395 /// <param name="value"></param>
396
397 /// <param name="defaultValue"></param>
398
399 /// <returns></returns>
400
401 public static decimal SafeGetDecimal(object value, decimal defaultValue)
402
403 {
404
405 try
406
407 {
408
409 //判断类型
410
411 if (null == value || value is DBNull)
412
413 {
414
415 return defaultValue;
416
417 }
418
419 else if (value is decimal)
420
421 {
422
423 return (decimal)value;
424
425 }
426
427 else if (value is string)
428
429 {
430
431 //尝试转换
432
433 return decimal.Parse((string)value);
434
435 }
436
437 else
438
439 {
440
441 //强制转换
442
443 return System.Convert.ToDecimal(value);
444
445 }
446
447 }
448
449 catch
450
451 {
452
453 //失败返回默认数据
454
455 return defaultValue;
456
457 }
458
459 }
460
461
462
463 /// <summary>
464
465 /// 安全的获得Guid
466
467 /// </summary>
468
469 /// <param name="value"></param>
470
471 /// <param name="defaultValue"></param>
472
473 /// <returns></returns>
474
475 public static System.Guid SafeGetGuid(object value, System.Guid defaultValue)
476
477 {
478
479 try
480
481 {
482
483 //判断类型
484
485 if (null == value || value is DBNull)
486
487 {
488
489 return System.Guid.Empty;
490
491 }
492
493 else if (value is System.Guid)
494
495 {
496
497 return (System.Guid)value;
498
499 }
500
501 else if (value is string)
502
503 {
504
505 //尝试转换
506
507 return new System.Guid((string)value);
508
509 }
510
511 else
512
513 {
514
515 //强制转换
516
517 return defaultValue;
518
519 }
520
521 }
522
523 catch
524
525 {
526
527 //失败返回默认数据
528
529 return defaultValue;
530
531 }
532
533
534
535 }
536
537