① c#中的DataTable如何修改数据类型
很简单。修改下值就可以。
我想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!!
② c#如何修改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上修改数据
更新表中的数据
DataRow类为了在编辑数据时挂起和恢复数据行的状态提供了3个方法:BeginEdit、EndEdit和CancelEdit方法。当编辑数据时,调用BeginEdit可以挂起任何事件(或异常),使用Items集合指定要修改的数据的列名和新值;使用EndEdit重新恢复任何事件(或异常);使用CancelEdit则可以回滚任何更改和重新激活任何事件或异常。
1. //获取Employees表中的第4行数据
2. DataRow drEmployee = dtEmployees.Rows[3];
3.
4. drEmployee.BeginEdit();
5.
6. drEmployee("EmpName") = "John";
7. drEmployee("Title")="Sales";
8. drEmployee.EndEdit();
④ C# datatable 如何修改某一行数据的类型
数据类型已经在表的列中就规定死了。如果WC的列里要求的是string那你运算时可以选转换运算结果出来再转换成string类型
⑤ 怎么修改datatable中某一列的值
/// <summary>
/// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
/// </summary>
/// <param name="argDataTable">数据表DataTable</param>
/// <returns>数据表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表结构
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "age")
{
//修改列类型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["MemberId"] = row["MemberId"];
rowNew["NickName"] = row["NickName"];
//修改记录值
rowNew["age"] = row["age"] + "岁";
dtResult.Rows.Add(rowNew);
}
//返回希望的结果
return dtResult;
}
类似 你看看
⑥ winform里面怎么对DataTable进行修改操作
// <summary>
/// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
/// </summary>
/// <param name="argDataTable">数据表DataTable</param>
/// <returns>数据表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表结构
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "age")
{
//修改列类型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["MemberId"] = row["MemberId"];
rowNew["NickName"] = row["NickName"];
//修改记录值
rowNew["age"] = row["age"] + "岁";
dtResult.Rows.Add(rowNew);
}
//返回希望的结果
return dtResult;
}
⑦ 修改DataTable中某列的数据类型.
/// <summary>
/// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
/// </summary>
/// <param name="argDataTable">数据表DataTable</param>
/// <returns>数据表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
{
DataTable dtResult = new DataTable();
//克隆表结构
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
{
if (col.ColumnName == "RQ")
{
//修改列类型
col.DataType = typeof(String);
}
}
foreach (DataRow row in argDataTable.Rows)
{
DataRow rowNew = dtResult.NewRow();
rowNew["DTBM"] = row["DTBM"];
//修改记录值
rowNew["RQ"] = Convert.ToDateTime(row["RQ"]).ToString("yyyy-MM-dd").ToString();
rowNew["DWBM"] = row["DWBM"];
rowNew["DWMC"] = row["DWMC"];
rowNew["YYID"] = row["YYID"];
rowNew["YYMC"] = row["YYMC"];
rowNew["YXCL"] = row["YXCL"];
dtResult.Rows.Add(rowNew);
}
return dtResult;
}
⑧ 更改DataTable某列的值。C#
楼上几位说的方法太笨拙了
强大的datagridview怎么可能不提供类似这样的事件呢
CellFormatting //,就是把源数据显示成指定格式的数据,但不影响原有的数据,即数据源映射到控件的格式化操作
还提供了一个与之相反的操作
CellParsing //把已经修改的数据按指定格式解析回源数据
如果你的单元格是可修改的,这个事件一定要进行处理,至于具体的处理要根据你的要求来进行,使用方法你看一下它的说明提示吧.
⑨ ADO.net查询出的DataTable表如何修改值
最好在查询sql语句里就替换为男女
两者都可以,为了方便datatable就可以了。但要和xml交互一般只有dataset。