c#如何修改DataTable里面的特定列的数据类型
ID ChkYN ModiDate
A 1 20080202
B 1 20080202
C 1 20080202
但是这个ChkYN是int类型 我想要把它改成bool类型,但是我只能在datatable里面修改,不知道该怎么做 展开
DataTable dt = AuctionOrders.PayCarPrice(uid, payStatus, pageIndex, pageSize);
(此处空一行)
if (dt.Rows.Count > 0)
{
//新表
DataTable newDt = new DataTable();
List<string> listColums = new List<string>();
//复制表结够
newDt = dt.Clone();
(此处空一行)
//新表中的列数据类型为Decmail的改为string
foreach (DataColumn col in newDt.Columns)
{
listColums.Add(col.ColumnName);
if (col.DataType.FullName == "System.Decimal")
{
col.DataType = Type.GetType("System.String");
}
}
(此处空一行)
foreach (DataRow row in dt.Rows)
{
DataRow newDtRow = newDt.NewRow();
foreach(DataColumn column in dt.Columns)
{
if (column.DataType.FullName == "System.Decimal")
{
newDtRow[column.ColumnName] = (Convert.ToDecimal(row[column.ColumnName]) / 10000).ToString("c") + "万";
}
else
{
newDtRow[column.ColumnName] = row[column.ColumnName];
}
}
newDt.Rows.Add(newDtRow);
}
(此处空三行)
var obj = new { state = true, message = newDt };
Response.Write(JsonConvert.SerializeObject(obj));
}
else
{
var obj = new { state = false, message = "没有查询到信息" };
Response.Write(JsonConvert.SerializeObject(obj));
}
扩展资料:
关于上述注意事项
DataTable中数据:ID NAME State1 A 12 B 03 C 0State数据列为int型,想让它在页面读取显示时,1显示为非工作日转工作日,0显示为工作日转非工作日。
详细原因:当在做列转换时
1,数据库中类型和要修改成的类型不一致。
2,遇到DataTable中有数据则无法进行数据转换的问题。
解决方法:如果直接修改当前datatable里制定列的数据会提示因为有数据所以不让修改,而通过if判断直接赋值又会提示数据类型不同而拒绝操作,报错。
DataTable dt=new DataTable();
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");
S.Columns["ChkYn"].DataType=Type.GetType("System.bool");
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");