DataTable 更改已有数据列的类型方法

DataTable 更改已有数据列的类型方法,废话不多说,直接上代码。

复制代码
  1  /// <summary>
  2         /// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
  3         /// </summary>
  4         /// <param name="argDataTable">数据表DataTable</param>
  5         /// <returns>数据表DataTable</returns>  
  6 
  7         private DataTable UpdateDataTable(DataTable argDataTable)
  8         {
  9             DataTable dtResult = new DataTable();
 10             //克隆表结构
 11             dtResult = argDataTable.Clone();
 12             foreach (DataColumn col in dtResult.Columns)
 13             {
 14                 if (col.ColumnName == "ID")
 15                 {
 16                     //修改列类型
 17                     col.DataType = typeof(Int32);
 18                 }
 19             }
 20             foreach (DataColumn col in dtResult.Columns)
 21             {
 22                 if (col.ColumnName == "DB")
 23                 {
 24                     //修改列类型
 25                     col.DataType = typeof(Double);
 26                 }
 27             }
 28             foreach (DataColumn col in dtResult.Columns)
 29             {
 30                 if (col.ColumnName == "DBMAX")
 31                 {
 32                     //修改列类型
 33                     col.DataType = typeof(Double);
 34                 }
 35             }
 36             foreach (DataColumn col in dtResult.Columns)
 37             {
 38                 if (col.ColumnName == "DBMIN")
 39                 {
 40                     //修改列类型
 41                     col.DataType = typeof(Double);
 42                 }
 43             }
 44             foreach (DataColumn col in dtResult.Columns)
 45             {
 46                 if (col.ColumnName == "LFV")
 47                 {
 48                     //修改列类型
 49                     col.DataType = typeof(Double);
 50                 }
 51             }
 52             foreach (DataColumn col in dtResult.Columns)
 53             {
 54                 if (col.ColumnName == "LFVMAX")
 55                 {
 56                     //修改列类型
 57                     col.DataType = typeof(Double);
 58                 }
 59             }
 60             foreach (DataColumn col in dtResult.Columns)
 61             {
 62                 if (col.ColumnName == "LFVMIN")
 63                 {
 64                     //修改列类型
 65                     col.DataType = typeof(Double);
 66                 }
 67             }
 68             foreach (DataColumn col in dtResult.Columns)
 69             {
 70                 if (col.ColumnName == "R1H")
 71                 {
 72                     //修改列类型
 73                     col.DataType = typeof(Double);
 74                 }
 75             }
 76             foreach (DataColumn col in dtResult.Columns)
 77             {
 78                 if (col.ColumnName == "R1HMAX")
 79                 {
 80                     //修改列类型
 81                     col.DataType = typeof(Double);
 82                 }
 83             }
 84             foreach (DataColumn col in dtResult.Columns)
 85             {
 86                 if (col.ColumnName == "R1HMIN")
 87                 {
 88                     //修改列类型
 89                     col.DataType = typeof(Double);
 90                 }
 91             }
 92             foreach (DataColumn col in dtResult.Columns)
 93             {
 94                 if (col.ColumnName == "RFV")
 95                 {
 96                     //修改列类型
 97                     col.DataType = typeof(Double);
 98                 }
 99             }
100             foreach (DataColumn col in dtResult.Columns)
101             {
102                 if (col.ColumnName == "RFVMAX")
103                 {
104                     //修改列类型
105                     col.DataType = typeof(Double);
106                 }
107             }
108             foreach (DataColumn col in dtResult.Columns)
109             {
110                 if (col.ColumnName == "RFVMIN")
111                 {
112                     //修改列类型
113                     col.DataType = typeof(Double);
114                 }
115             }
116             foreach (DataColumn col in dtResult.Columns)
117             {
118                 if (col.ColumnName == "CON")
119                 {
120                     //修改列类型
121                     col.DataType = typeof(Double);
122                 }
123             }
124             foreach (DataColumn col in dtResult.Columns)
125             {
126                 if (col.ColumnName == "CONMAX")
127                 {
128                     //修改列类型
129                     col.DataType = typeof(Double);
130                 }
131             }
132             foreach (DataColumn col in dtResult.Columns)
133             {
134                 if (col.ColumnName == "CONMIN")
135                 {
136                     //修改列类型
137                     col.DataType = typeof(Double);
138                 }
139             }
140             //foreach (DataColumn col in dtResult.Columns)
141             //{
142             //    if (col.ColumnName == "IGBX_RECORD_TIME")
143             //    {
144             //        //修改列类型
145             //        col.DataType = typeof(String);
146             //    }
147             //}
148             foreach (DataRow row in argDataTable.Rows)
149             {
150                 DataRow rowNew = dtResult.NewRow();
151                 rowNew["ID"] = row["ID"];
152                 rowNew["IGBX_RECORD_TIME"] = row["IGBX_RECORD_TIME"];
153                 //rowNew["IGBX_RECORD_TIME"] = Convert.ToDateTime(row["IGBX_RECORD_TIME"]).ToString("yyyy-MM-dd").ToString();
154                 rowNew["IGBX_BAR_CODE"] = row["IGBX_BAR_CODE"];
155                 rowNew["IGBX_TYRE_SIZE"] = row["IGBX_TYRE_SIZE"];
156                 rowNew["IGBX_TYRE_PATTERN"] = row["IGBX_TYRE_PATTERN"];
157 
158                 //修改记录值
159                 rowNew["DB"] = Convert.ToDouble(row["DB"]);
160                 rowNew["DBMAX"] = Convert.ToDouble(row["DBMAX"]);
161                 rowNew["DBMIN"] = Convert.ToDouble(row["DBMIN"]);
162                 rowNew["LFV"] = Convert.ToDouble(row["LFV"]);
163                 rowNew["LFVMAX"] = Convert.ToDouble(row["LFVMAX"]);
164                 rowNew["LFVMIN"] = Convert.ToDouble(row["LFVMIN"]);
165                 rowNew["R1H"] = Convert.ToDouble(row["R1H"]);
166                 rowNew["R1HMAX"] = Convert.ToDouble(row["R1HMAX"]);
167                 rowNew["R1HMIN"] = Convert.ToDouble(row["R1HMIN"]);
168                 rowNew["RFV"] = Convert.ToDouble(row["RFV"]);
169                 rowNew["RFVMAX"] = Convert.ToDouble(row["RFVMAX"]);
170                 rowNew["RFVMIN"] = Convert.ToDouble(row["RFVMIN"]);
171                 rowNew["CON"] = Convert.ToDouble(row["CON"]);
172                 rowNew["CONMAX"] = Convert.ToDouble(row["CONMAX"]);
173                 rowNew["CONMIN"] = Convert.ToDouble(row["CONMIN"]);
174 
175                
176 
177                 dtResult.Rows.Add(rowNew);
178             }
179             return dtResult;
180         }
复制代码

以上即是DataTable 更改现有数据列的类型方法。

posted on   sduSRZ  阅读(6229)  评论(2编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5
点击右上角即可分享
微信分享提示