如何获得安全的数据类型?

     在开发过程中,我们难免遇到类型转换问题,有时我们一般采用直接转换来完成,这样每次遇到都要重复使用,我这里偷个懒,写了个类,可以实现“复用”了。^-^.

  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
posted @ 2008-02-15 19:36  Lucky Jack  阅读(411)  评论(2编辑  收藏  举报