c#中的DataTable如何修改数据类型

DataTable中数据:
ID NAME State
1 A 1
2 B 0
3 C 0
State数据列为bit型,想把它改为char型,且原数据1变为“是”,0变为“否”。
十分感谢ChinaGuoweixin的回答,不过因为刚接触没几天就被逼着搞这玩意,实在有些困难,这个datatable是返回的一个表,需要遍历实现state列的数据类型和数据值的修改,时间催得紧,不是非要做懒人,有请高人

很简单。修改下值就可以。
我想LZ要学会自己思考。我想这个你都没有思考一看不会就发上来了。我给你写下如何生成DataTable的步骤。然后自己思考,修改下。
最简单的方式
DataTable dt=new DataTable("Table1"); //创建数据表
DataColumn dcID=new DataColumn("ID",typeof(int)); //创建ID列
DataColumn dcName=new DataColumn("Name",typeof(string));//创建姓名列
DataColumn dcState=new DataColumn("State",typeof(int));//创建状态列

//把创建的三列放在DataTable中
dt.Columns.Add(dcID); dt.Columns.Add(dcName);
dt.Columns.Add(dcState);
//创建数据行。
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]=1;
//把创建的行插入到数据表“Table1”中
dt.Rows.Add(dr);
//如上,这样就创建了一个如题所示的数据表的过程。

如果你想把bit型转换为char型。只需要候改下插入的列即可。
如将状态列改为:
DataColumn dcState=new DataColumn("State",typeof(char)); //此处将其改为Char类型。
//如上所示数据行
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]="是"; //把State列的值改为"是"或“否”即可。

打了半天,只希望楼主能从中体会如何自定义DataTable。
GoodLuck!!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
Select ID,Name,State,StateValue
case when state=1 then '是'
end as '否' from TableName

如果你要改State的值,就要改State这一列的 DataType.

方法如下:(我没测试,你试试行不行吧)
DataTable dt=new DataTable();
dt.Columns[2].DataType=Type.GetType("System.Char");
foreach (DataRow dr in dt.Rows)
{
dr[2] = (int)dr[2] == 1 ? '是' : '否';
}本回答被提问者采纳
第2个回答  2010-05-04
DataTable dt=new DataTable("Table1"); //创建数据表
DataColumn dcID=new DataColumn("ID",typeof(int)); //创建ID列
DataColumn dcName=new DataColumn("Name",typeof(string));//创建姓名列
DataColumn dcState=new DataColumn("State",typeof(int));//创建状态列

//把创建的三列放在DataTable中
dt.Columns.Add(dcID); dt.Columns.Add(dcName);
dt.Columns.Add(dcState);
//创建数据行。
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]=1;
//把创建的行插入到数据表“Table1”中
dt.Rows.Add(dr);
//如上,这样就创建了一个如题所示的数据表的过程。

如果你想把bit型转换为char型。只需要候改下插入的列即可。
如将状态列改为:
DataColumn dcState=new DataColumn("State",typeof(char)); //此处将其改为Char类型。
//如上所示数据行
DataRow dr=dt.NewRow();
dr["ID"]=1; dr["Name"]=A; dr["State"]="是"; //把State列的值改为"是"或“否”即可。

打了半天,只希望楼主能从中体会如何自定义DataTable。
GoodLuck!!

c#中的DataTable如何修改数据类型
\/\/把创建的行插入到数据表“Table1”中 dt.Rows.Add(dr);\/\/如上,这样就创建了一个如题所示的数据表的过程。如果你想把bit型转换为char型。只需要候改下插入的列即可。如将状态列改为:DataColumn dcState=new DataColumn("State",typeof(char)); \/\/此处将其改为Char类型。\/\/如上所示数据行...

c#如何修改DataTable里面的特定列的数据类型
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.Co...

C#编程中如何改变DataTable里的某一条记录?
DataRow类为了在编辑数据时挂起和恢复数据行的状态提供了3个方法:BeginEdit、EndEdit和CancelEdit方法。当编辑数据时,调用BeginEdit可以挂起任何事件(或异常),使用Items集合指定要修改的数据的列名和新值;使用EndEdit重新恢复任何事件(或异常);使用CancelEdit则可以回滚任何更改和重新激活任何事件或异常。

修改DataTable中某列的数据类型.
\/\/\/ 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)\/\/\/ <\/summary> \/\/\/ <param name="argDataTable">数据表DataTable<\/param> \/\/\/ <returns>数据表DataTable<\/returns> private DataTable UpdateDataTable(DataTable argDat...

C# datatable 如何修改某一行数据的类型
数据类型已经在表的列中就规定死了。如果WC的列里要求的是string那你运算时可以选转换运算结果出来再转换成string类型

C#如何修改数据库中的数据,进行加一操作
1、从dataset获取并修改数据:datatable dt=dataset.tables[0];datarow dr=dt.rows[0];dr["列名"]=值;2、作用:如果你不使用dataset模型,每次调用数据都得执行一次数据库连接,效率会很低的;此外控件绑定数据源,用的就是datatable或者dataset;如果你想批量修改数据库中的表数据,只要把dataset的...

怎么修改datatable中某一列的值?
dc.DataType = Type.GetType("System.String")C#:DataTable dt = new DataTable();DataColumn dc = dt.Columns(i);\/\/i就是第几列或者用列名也可以 dc.DataType = Type.GetType("System.String");你可以试下,double转string应该是可以的,不知道你为什么要这么做 ...

c#获取datatable中的某列数据并改变
for(int i=0;i<dataset.tables[0].count;i++)\/\/dataset你应该知道是什么,不是datatable { string times=dataset.table[0].rows[i][0].tostring()+":"+dataset.tables[0].rows[i][1].tostring();\/\/这里写输出times或者你可以装载到list中 } ...

用C#怎么修改字段的类型
double dbl;\/\/这是转换的过程 dbl=Convert.ToDubble(8°- 15°);\/\/假设他是doubble类型的字段 tb.rows[0][0].value=dbl;我的VS还没装一个月没搞了有点生了,说以只能给你写伪代码 大概是这样了 \/\/需要存储的数据 int i=10;\/\/表 DataTable tb=new DataTable();\/\/表的第一行的第一...

c# 如何将datatable的rowstate值改为不是unchanged
private void DemonstrateRowState(){ \/\/ Run a function to create a DataTable with one column.DataTable table = MakeTable();DataRow row;\/\/ Create a new DataRow.row = table.NewRow();\/\/ Detached row.Console.WriteLine("New Row " + row.RowState);table.Rows.Add(row);\/\/ New...

相似回答