如何获得安全的数据类型?
在开发过程中,我们难免遇到类型转换问题,有时我们一般采用直接转换来完成,这样每次遇到都要重复使用,我这里偷个懒,写了个类,可以实现“复用”了。^-^.
1public class Utility
2
3{
4
5/// <summary>
6
7/// 换行符
8
9/// </summary>
10
11public 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
27public static bool SetDropDownListValue(System.Web.UI.WebControls.DropDownList list, string value)
28
29{
30
31//判断是否有效
32
33if (null == list)
34
35{
36
37//如果无效直接返回
38
39return false;
40
41}
42
43![]()
44
45//判断是否有数据
46
47if (0 == list.Items.Count)
48
49{
50
51//如果没有数据返回失败
52
53return false;
54
55}
56
57![]()
58
59//尝试设置数据
60
61try
62
63{
64
65//设置数据
66
67list.SelectedValue = value;
68
69![]()
70
71//成功
72
73return true;
74
75}
76
77catch
78
79{
80
81//返回失败
82
83return 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
103public static bool SetOptionListValue(System.Web.UI.WebControls.RadioButtonList list, string value)
104
105{
106
107//判断是否有效
108
109if (null == list)
110
111{
112
113//如果无效直接返回
114
115return false;
116
117}
118
119![]()
120
121//判断是否有数据
122
123if (0 == list.Items.Count)
124
125{
126
127//如果没有数据返回失败
128
129return false;
130
131}
132
133![]()
134
135//尝试设置数据
136
137try
138
139{
140
141//设置数据
142
143list.SelectedValue = value;
144
145![]()
146
147//成功
148
149return true;
150
151}
152
153catch
154
155{
156
157//返回失败
158
159return 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
179public static DateTime SafeGetDateTime(object value, DateTime defaultValue)
180
181{
182
183try
184
185{
186
187//判断类型
188
189if (null == value || value is DBNull)
190
191{
192
193return defaultValue;
194
195}
196
197else if (value is DateTime)
198
199{
200
201return (DateTime)value;
202
203}
204
205else if (value is string)
206
207{
208
209//尝试转换
210
211return DateTime.Parse((string)value);
212
213}
214
215else
216
217{
218
219//强制转换
220
221return System.Convert.ToDateTime(value);
222
223}
224
225}
226
227catch
228
229{
230
231//失败返回默认数据
232
233return 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
253public static bool SafeGetBoolean(object value, bool defaultValue)
254
255{
256
257try
258
259{
260
261//判断类型
262
263if (null == value || value is DBNull)
264
265{
266
267return defaultValue;
268
269}
270
271else if (value is bool)
272
273{
274
275return (bool)value;
276
277}
278
279else if (value is string)
280
281{
282
283//尝试转换
284
285return bool.Parse((string)value);
286
287}
288
289else
290
291{
292
293//强制转换
294
295return System.Convert.ToBoolean(value);
296
297}
298
299}
300
301catch
302
303{
304
305//失败返回默认数据
306
307return 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
327public static int SafeGetInteger(object value, int defaultValue)
328
329{
330
331try
332
333{
334
335//判断类型
336
337if (null == value || value is DBNull)
338
339{
340
341return defaultValue;
342
343}
344
345else if (value is int)
346
347{
348
349return (int)value;
350
351}
352
353else if (value is string)
354
355{
356
357//尝试转换
358
359return int.Parse((string)value);
360
361}
362
363else
364
365{
366
367//强制转换
368
369return System.Convert.ToInt32(value);
370
371}
372
373}
374
375catch
376
377{
378
379//失败返回默认数据
380
381return 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
401public static decimal SafeGetDecimal(object value, decimal defaultValue)
402
403{
404
405try
406
407{
408
409//判断类型
410
411if (null == value || value is DBNull)
412
413{
414
415return defaultValue;
416
417}
418
419else if (value is decimal)
420
421{
422
423return (decimal)value;
424
425}
426
427else if (value is string)
428
429{
430
431//尝试转换
432
433return decimal.Parse((string)value);
434
435}
436
437else
438
439{
440
441//强制转换
442
443return System.Convert.ToDecimal(value);
444
445}
446
447}
448
449catch
450
451{
452
453//失败返回默认数据
454
455return 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
475public static System.Guid SafeGetGuid(object value, System.Guid defaultValue)
476
477{
478
479try
480
481{
482
483//判断类型
484
485if (null == value || value is DBNull)
486
487{
488
489return System.Guid.Empty;
490
491}
492
493else if (value is System.Guid)
494
495{
496
497return (System.Guid)value;
498
499}
500
501else if (value is string)
502
503{
504
505//尝试转换
506
507return new System.Guid((string)value);
508
509}
510
511else
512
513{
514
515//强制转换
516
517return defaultValue;
518
519}
520
521}
522
523catch
524
525{
526
527//失败返回默认数据
528
529return defaultValue;
530
531}
532
533![]()
534
535}
536![]()
537