请教把XML转datatable时如何指定某列的类型

 我来答
5789789
2016-08-10 · TA获得超过1270个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:351万
展开全部
  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;
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式