1    /// <summary>
2 /// 把DataRow中的某一列值转换为CheckState类型
3 /// </summary>
4 /// <param name="row">数据行</param>
5 /// <param name="columnName">列名</param>
6 /// <returns></returns>
7 public static CheckState DataRowToCheckState(this DataRow row, string columnName)
8 {
9 if (!row.Table.Columns.Contains(columnName))
10 {
11 return CheckState.Indeterminate;
12 }
13
14 if (row.IsNull(columnName))
15 {
16 return CheckState.Indeterminate;
17 }
18
19 bool result;
20 if (bool.TryParse(row[columnName].ToString(), out result))
21 {
22 return result ? CheckState.Checked : CheckState.Unchecked;
23 }
24 else
25 {
26 return CheckState.Indeterminate;
27 }
28 }
29
30 /// <summary>
31 /// 把DataRow中的某一列值转换为十进制数
32 /// </summary>
33 /// <param name="row">数据行</param>
34 /// <param name="columnName">列名</param>
35 /// <returns></returns>
36 public static decimal DataRowToDecimal(this DataRow row, string columnName)
37 {
38 if (!row.Table.Columns.Contains(columnName))
39 {
40 return 0M;
41 }
42
43 if (row.IsNull(columnName))
44 {
45 return 0M;
46 }
47
48 decimal result;
49 if (decimal.TryParse(row[columnName].ToString(), out result))
50 {
51 return result;
52 }
53 else
54 {
55 return 0M;
56 }
57 }
58
59 /// <summary>
60 /// 把DataRow中的某一列值转换为十进制数
61 /// </summary>
62 /// <param name="row">数据行</param>
63 /// <param name="columnName">列名</param>
64 /// <returns>可能为空</returns>
65 public static decimal? DataRowToDecimalNull(this DataRow row, string columnName)
66 {
67 if (!row.Table.Columns.Contains(columnName))
68 {
69 return null;
70 }
71
72 if (row.IsNull(columnName))
73 {
74 return null;
75 }
76
77 decimal result;
78 if (decimal.TryParse(row[columnName].ToString(), out result))
79 {
80 return result;
81 }
82 else
83 {
84 return null;
85 }
86 }
87
88 /// <summary>
89 /// 把DataRow中的某一列值转换为字符串
90 /// </summary>
91 /// <param name="row">数据行</param>
92 /// <param name="columnName">列名</param>
93 /// <returns></returns>
94 public static string DataRowToString(this DataRow row, string columnName)
95 {
96 if (!row.Table.Columns.Contains(columnName))
97 {
98 return string.Empty;
99 }
100
101 if (row.IsNull(columnName))
102 {
103 return string.Empty;
104 }
105
106 return row[columnName].ToString();
107 }
108
109 /// <summary>
110 /// 把DataRow中的某一列值转换为日期
111 /// </summary>
112 /// <param name="row">数据行</param>
113 /// <param name="columnName">列名</param>
114 /// <returns></returns>
115 public static DateTime DataRowToDateTime(this DataRow row, string columnName)
116 {
117 if (!row.Table.Columns.Contains(columnName))
118 {
119 return DateTime.Now;
120 }
121
122 if (row.IsNull(columnName))
123 {
124 return DateTime.Now;
125 }
126
127 DateTime result;
128 if (DateTime.TryParse(row[columnName].ToString(), out result))
129 {
130 return result;
131 }
132 else
133 {
134 return DateTime.Now;
135 }
136 }
137
138 /// <summary>
139 /// 把DataRow中的某一列值转换为日期
140 /// </summary>
141 /// <param name="row">数据行</param>
142 /// <param name="columnName">列名</param>
143 /// <returns></returns>
144 public static DateTime? DataRowToDateTimeNull(this DataRow row, string columnName)
145 {
146 if (!row.Table.Columns.Contains(columnName))
147 {
148 return null;
149 }
150
151 if (row.IsNull(columnName))
152 {
153 return null;
154 }
155
156 DateTime result;
157 if (DateTime.TryParse(row[columnName].ToString(), out result))
158 {
159 return result;
160 }
161 else
162 {
163 return null;
164 }
165 }
166
167 /// <summary>
168 /// 把DataRow转换为数据字典
169 /// </summary>
170 /// <param name="row"></param>
171 /// <returns></returns>
172 public static Dictionary<string, object> DataRowToDictionary(this DataRow row)
173 {
174 if (row.Table.Columns.Count > 0)
175 {
176 Dictionary<string, object> dic = new Dictionary<string, object>();
177 for (int i = 0; i < row.Table.Columns.Count; i++)
178 {
179 var columnName = row.Table.Columns[i].ColumnName;
180 dic.Add(columnName, row[columnName]);
181 }
182
183 return dic;
184 }
185
186 return null;
187 }
188
189 /// <summary>
190 /// 把DataRow中的某一列值转换为布尔类型
191 /// </summary>
192 /// <param name="row">数据行</param>
193 /// <param name="columnName">列名</param>
194 /// <returns></returns>
195 public static bool DataRowToBool(this DataRow row, string columnName)
196 {
197 if (!row.Table.Columns.Contains(columnName))
198 {
199 return false;
200 }
201
202 if (row.IsNull(columnName))
203 {
204 return false;
205 }
206
207 bool result;
208 if (bool.TryParse(row[columnName].ToString(), out result))
209 {
210 return result;
211 }
212 else
213 {
214 return false;
215 }
216 }
217 }
218 #endregion
219
220 #region Dictionary<string, object>的扩展方法
221 /// <summary>
222 /// Dictionary<string, object>的扩展方法
223 /// </summary>
224 public static class DictionaryExtensionMethods
225 {
226 /// <summary>
227 /// 把Dictionary中的某一值转换为布尔类型
228 /// </summary>
229 /// <param name="dic">数据字典</param>
230 /// <param name="columnName">列名</param>
231 /// <returns></returns>
232 public static CheckState DictionaryToCheckState(this Dictionary<string, object> dic, string key)
233 {
234 if (!dic.ContainsKey(key))
235 {
236 return CheckState.Indeterminate;
237 }
238
239 if (dic[key] == null)
240 {
241 return CheckState.Indeterminate;
242 }
243
244 bool result;
245 if (bool.TryParse(dic[key].ToString(), out result))
246 {
247 return result ? CheckState.Checked : CheckState.Unchecked;
248 }
249 else
250 {
251 return CheckState.Indeterminate;
252 }
253 }
254
255 /// <summary>
256 /// 把Dictionary中的某一值转换为十进制数
257 /// </summary>
258 /// <param name="dic">数据字典</param>
259 /// <param name="columnName">列名</param>
260 /// <returns></returns>
261 public static decimal DictionaryToDecimal(this Dictionary<string, object> dic, string key)
262 {
263 if (!dic.ContainsKey(key))
264 {
265 return 0M;
266 }
267
268 if (dic[key] == null)
269 {
270 return 0M;
271 }
272
273 decimal result;
274 if (decimal.TryParse(dic[key].ToString(), out result))
275 {
276 return result;
277 }
278 else
279 {
280 return 0M;
281 }
282 }
283
284 /// <summary>
285 /// 把Dictionary中的某一值转换为字符串
286 /// </summary>
287 /// <param name="dic">数据字典</param>
288 /// <param name="columnName">列名</param>
289 /// <returns></returns>
290 public static string DictionaryToString(this Dictionary<string, object> dic, string key)
291 {
292 if (!dic.ContainsKey(key))
293 {
294 return string.Empty;
295 }
296
297 if (dic[key] == null)
298 {
299 return string.Empty;
300 }
301
302 return dic[key].ToString();
303 }
304
305 /// <summary>
306 /// 把Dictionary中的某一值转换为日期
307 /// </summary>
308 /// <param name="dic">数据字典</param>
309 /// <param name="columnName">列名</param>
310 /// <returns></returns>
311 public static DateTime DictionaryToDateTime(this Dictionary<string, object> dic, string key)
312 {
313 if (!dic.ContainsKey(key))
314 {
315 return DateTime.Now;
316 }
317
318 if (dic[key] == null)
319 {
320 return DateTime.Now;
321 }
322
323 DateTime result;
324 if (DateTime.TryParse(dic[key].ToString(), out result))
325 {
326 return result;
327 }
328 else
329 {
330 return DateTime.Now;
331 }
332 }
333 }
334 #endregion
335
336 #region 表格GridView的扩展方法
337 /// <summary>
338 /// 表格GridView的扩展方法
339 /// </summary>
340 public static class GridViewExtensionMethods
341 {
342 /// <summary>
343 /// 导出DevExpress表格
344 /// </summary>
345 /// <param name="fileName">文件名</param>
346 public static void ExportToExcel(this DevExpress.XtraGrid.Views.Grid.GridView view, string fileName)
347 {
348 SaveFileDialog saveDlg = new SaveFileDialog();
349 saveDlg.Filter = "Excel 2007文件|*.xlsx|Excel 99-03|*.xls";
350 saveDlg.FileName = fileName;
351 if (saveDlg.ShowDialog() == DialogResult.OK)
352 {
353 if (saveDlg.FilterIndex == 1)
354 {
355 view.ExportToXlsx(saveDlg.FileName);
356 }
357 else if (saveDlg.FilterIndex == 2)
358 {
359 view.ExportToXls(saveDlg.FileName);
360 }
361 }
362 }
363 }
364 #endregion

最新文章

  1. Google Map API V3开发(4)
  2. unity3d编辑器——检视面板部分(一)
  3. 【Java每日一题】20161122
  4. 【翻译十七】java-并发之高性能对象
  5. linux系统基础网络配置
  6. Nginx简介
  7. Codeforces 735C:Tennis Championship(数学+贪心)
  8. Entity Framework Code First 映射继承关系
  9. CentOS7搭建SAMBA服务器实现与WIN10匿名共享文件
  10. Django 运行报错 ImportError: No module named &#39;PIL&#39;
  11. Python标准模块—Regular Expressions
  12. 【mongodb系统学习之十】mongodb查询(三)
  13. 教程:关于如何通过Maven仓库安装Spire系列的 Java产品
  14. WLST Hangs Up Because of Java VM ClassLoader Deadlock
  15. css实现弹出框
  16. xamarin.Android开发前的配置
  17. 纯粹的python绑定
  18. Apache Shiro对象概念
  19. 【BZOJ】4542: [Hnoi2016]大数
  20. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(6) Locale

热门文章

  1. java学习之spring基础
  2. git pull与git pull --rebase
  3. WeetCode2滑动窗口系列
  4. Django基础笔记10(前端展示)
  5. TornadoFx的TableView组件使用
  6. 【Java SE进阶】Day02 Collection、Iterator、泛型
  7. 【云原生 • DevOps】一文掌握容器管理工具 Rancher
  8. ARC145~152 题解
  9. List排序(降序)
  10. (已转)Linux基础第七章 线程