C#DataTableRow列值互转
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
C#DataTableRow列值互转的更多相关文章
- SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键
http://blog.csdn.net/zh2qiang/article/details/5323981 SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入. 1 ...
- excel转化为table(去掉所有列值都为空的值一行,即返回有效值的DataTable)
/// <summary> /// 去掉所有列值都为空的值一行,即返回有效值的DataTable /// </summary> /// <param name=" ...
- Mysql 如何实现列值的合并
Mysql 如何实现列值的合并 SELECT GROUP_CONCAT(name SEPARATOR ' ') AS name FROM A
- foreach属性-动态-mybatis中使用map类型参数,其中key为列名,value为列值
http://zhangxiong0301.iteye.com/blog/2242723 最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名, ...
- PIVOT 用于将列值旋转为列名
PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )A ...
- jQuery动态对表格Table进行添加或删除行以及修改列值操作
jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...
- GRID用法(取行、列值;定位选中某行等等)
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- BLOB或TEXT字段使用散列值和前缀索引优化提高查询速度
1.创建表,存储引擎为myisam,对大文本字段blob使用MD5函数建立一个散列值 create table t2(id varchar(60), content blob, hash_value ...
- 解决无法获取 GridView 隐藏列值问题
今天遇到了一个要获取GridView隐藏列值的问题,试了好几种方法,要么获取不到,要么获取到了类列的值也隐藏了,但在样式中这一列会多出一块,,但最后找到了一个功能实现而且实现了列完美隐藏的方法和大家分 ...
- 【SQL】Update中使用表别名、如何用表中一列值替换另一列的所有值
Update中使用表别名 select中的表别名: select * from TableA as ta update中的表别名: update ta from TableA as ta 如何用表中一 ...
随机推荐
- Django系列---开发一
参考 杜赛: https://www.dusaiphoto.com/article/2/ 官方文档: https://docs.djangoproject.com/en/3.2/ 开发环境 # 基本 ...
- day14-HTTP01
HTTP协议 1.什么是HTTP协议? 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用广泛的一种网络协议.是工作在tcp/ip协议基础上的,所有的ww ...
- Java开发学习(四十一)----MyBatisPlus标准数据层(增删查改分页)开发
一.标准CRUD使用 对于标准的CRUD功能都有哪些以及MyBatisPlus都提供了哪些方法可以使用呢? 我们先来看张图: 1.1 环境准备 这里用的环境就是Java开发学习(四十)----MyBa ...
- go工具pprof部署
在做内存分析时,用到了pprof,这里做一下部署介绍和入门级别的使用. pprof是golang的性能工具,有两种交互方式:命令行交互和web交互,同时还支持性能分析数据的图形化展示. 部署pprof ...
- (工具) 交叉编译 gperftools及使用
交叉编译gperftools及使用 sudo apt-get install kcachegrind # 导出为 callgrind 格式时需要 sudo apt install doxygen-la ...
- python编程学习方法及计算机基础理论
**从零开始学习编程 ** 一.学习前语 在学习python之前首先先说几点学习建议,首先是培养自己能解决问题的能力: 1.遇到问题时给自己设置一个解决该问题的时间限制 0-5min:自己解决问题(百 ...
- day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键
JDBC配置connector的jar包 1.项目下新建lib文件夹 2.将mysql-connector-java-版本号.jar复制到lib目录下 3.右键项目名,选择Properties选项 4 ...
- 【大数据面试】【框架】Shuffle优化、内存参数配置、Yarn工作机制、调度器使用
三.MapReduce 1.Shuffle及其优化☆ Shuffle是Map方法之后,Reduce方法之前,混洗的过程 Map-->getPartition(标记数据的分区)-->对应的环 ...
- 如何通过C#合并Word文档?
合并Word文档可以快速地将多份编辑好的文档合在一起,避免复制粘贴时遗漏内容,以及耗费不必要的时间,同时,也方便了人们阅读或者对其进行再次修改.例如,在我们进行团队作业的时候,每个人都会有不同的分工, ...
- appium环境搭建(从入门到放弃)
一.appium环境搭建 1.python3 python3的下载安装这里就不多做介绍了,当然你也可以选择自己喜欢的语音,比如java.... 2.jdk 1)下载地址 官网(需登录账号): http ...