请教把XML转datatable时如何指定某列的类型
1个回答
展开全部
如果dataTable表格固定的时候可以直接设定列的类型:
DataTable dt=new DataTable();
dt.columns.add("Column1",typeof(int));
dt.columns.add("Colunm2",typeof(string));
2. 如果在列类型未定义的情况下而直接赋值,要想修改列的类型就得用强制类型转换了,前提是要能够转换,譬如字符不能转为数字类型?给你个强制转换的示例:
/// <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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询