zhao
2021-07-19 8347f2fbddbd25369359dcb2da1233ac48a19fdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
namespace HW.Utility.Data
{
    using System;
    using System.ComponentModel;
    using System.Data;
 
    public abstract class BaseDataUtility
    {
        private Database dataAccess;
 
        protected abstract Database CreateDataBase();
        public static T GetDataByDataReader<T>(IDataReader dr, int index, T defaultT) where T: IConvertible
        {
            object obj2 = dr[index];
            if ((obj2 == null) || (obj2 is DBNull))
            {
                return defaultT;
            }
            return (T) Convert.ChangeType(obj2, typeof(T));
        }
 
        public static T GetDataByDataReader<T>(IDataReader dr, string columnName, T defaultT) where T: IConvertible
        {
            object obj2 = dr[columnName];
            if ((obj2 == null) || (obj2 is DBNull))
            {
                return defaultT;
            }
            if (typeof(T) == typeof(string))
            {
                obj2 = obj2.ToString();
            }
            return (T) Convert.ChangeType(obj2, typeof(T));
        }
 
        public static T GetDataByDataRow<T>(DataRow dr, int index, T defaultT) where T: IConvertible
        {
            object obj2 = dr[index];
            if ((obj2 == null) || (obj2 is DBNull))
            {
                return defaultT;
            }
            if (typeof(T) == typeof(string))
            {
                obj2 = obj2.ToString();
            }
            return (T) Convert.ChangeType(obj2, typeof(T));
        }
 
        public static T GetDataByDataRow<T>(DataRow dr, string columnName, T defaultT) where T: IConvertible
        {
            object obj2 = dr[columnName];
            if ((obj2 == null) || (obj2 is DBNull))
            {
                return defaultT;
            }
            if (typeof(T) == typeof(string))
            {
                obj2 = obj2.ToString();
            }
            return (T) Convert.ChangeType(obj2, typeof(T));
        }
 
        public static T? GetNullableDataByDataReader<T>(IDataReader dr, string columnName) where T: struct, IConvertible
        {
            T? nullable = null;
            object obj2 = dr[columnName];
            if (!((obj2 == null) || (obj2 is DBNull)))
            {
                nullable = new T?(GetDataByDataReader<T>(dr, columnName, default(T)));
            }
            return nullable;
        }
 
        public static string GetString(DataRow dr, int index)
        {
            return GetDataByDataRow<string>(dr, index, string.Empty);
        }
 
        public static string GetString(DataRow dr, string columnName)
        {
            return GetDataByDataRow<string>(dr, columnName, string.Empty);
        }
 
        public static string GetString(IDataReader dr, int index)
        {
            return GetDataByDataReader<string>(dr, index, string.Empty);
        }
 
        public static string GetString(IDataReader dr, string columnName)
        {
            return GetDataByDataReader<string>(dr, columnName, string.Empty);
        }
 
        public static string GetTrimString(DataRow dr, int index)
        {
            return GetString(dr, index).Trim();
        }
 
        public static string GetTrimString(DataRow dr, string columnName)
        {
            return GetString(dr, columnName).Trim();
        }
 
        public static string GetTrimString(IDataReader dr, int index)
        {
            return GetString(dr, index).Trim();
        }
 
        public static string GetTrimString(IDataReader dr, string columnName)
        {
            return GetString(dr, columnName).Trim();
        }
 
        public static bool IsNullValue(object obj)
        {
            return ((obj == null) || (obj is DBNull));
        }
 
        [Browsable(false)]
        protected virtual Database DataAccess
        {
            get
            {
                if (this.dataAccess == null)
                {
                    this.dataAccess = this.CreateDataBase();
                    if (this.dataAccess == null)
                    {
                        throw new NullReferenceException("由虚拟方法CreateDataBase生成的DataBase对象为空");
                    }
                }
                return this.dataAccess;
            }
        }
    }
}