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 更改现有数据列的类型方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!