c#如何修改DataTable里面的特定列的数据类型

返回的datatable如下:IDChkYNModiDateA120080202B120080202C120080202但是这个ChkYN是int类型我想要把它改成boo... 返回的datatable如下:
ID ChkYN ModiDate
A 1 20080202
B 1 20080202
C 1 20080202
但是这个ChkYN是int类型 我想要把它改成bool类型,但是我只能在datatable里面修改,不知道该怎么做
展开
 我来答
大野瘦子
高粉答主

推荐于2019-11-12 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:33.1万
展开全部

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判断直接赋值又会提示数据类型不同而拒绝操作,报错。

怀衲兰0gI
推荐于2018-02-27 · TA获得超过1213个赞
知道答主
回答量:515
采纳率:0%
帮助的人:200万
展开全部
先new一个Table,得到列Columns,再修改Type:

DataTable dt=new DataTable();

dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是牛皮超人
2009-03-27 · TA获得超过175个赞
知道答主
回答量:106
采纳率:0%
帮助的人:70万
展开全部
DataTable S=new DataTable();
S.Columns["ChkYn"].DataType=Type.GetType("System.bool");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lackyhuang
2009-03-27 · TA获得超过633个赞
知道小有建树答主
回答量:813
采纳率:0%
帮助的人:861万
展开全部
DataTable dt=new DataTable();
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
songjiantt
2009-03-28
知道答主
回答量:59
采纳率:0%
帮助的人:0
展开全部
dt.Columns["ChkYn"].DataType=Type.GetType("System.bool");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式