在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
DataTable中数据:
详细原因:当在做列转换时 1,数据库中类型和要修改成的类型不一致; 2,遇到DataTable中有数据则无法进行数据转换的问题。 解决方法:如果直接修改当前datatable里制定列的数据会提示因为有数据所以不让修改,而通过if判断直接赋值又会提示数据类型不同而拒绝操作,报错。 通过在网上参照其他该类问题,基本解决方式都是要修改列结构。既然明白了关键所在那就直奔主题了。 1,我新建立一个新的datatable类型的变量,定义好各个列为自己需要的类型,然后添加各个列到新datatable中。 2,遍历原datatable数据,给新datatable各行各列赋值。 3,添加筛选条件,按照需要将指定列的内容进行更改,得到想要的效果。 具体代码如下: 1 private void Bind()//数据绑定方法 2 { 3 int TotalPage = 0; 4 PageBarManager p = new PageBarManager(); 5 6 dt = p.GetPageBarDate("WorkDaySet", "id", WebUserControl1.strFieldName, WebUserControl1.strFieldValue, 10, p.CurrentPage, ref TotalPage);//调用了分页存储过程 7 DataTable dtnew = new DataTable(); //新建一个对象 8 if (dt != null && dt.Rows.Count > 0) 9 { 10 DataColumn ID = new DataColumn("ID", typeof(int)); //设置各列类型 11 DataColumn Day = new DataColumn("day", typeof(DateTime)); 12 DataColumn state = new DataColumn("state", typeof(string)); 13 dtnew.Columns.Add(ID); //向datatable中添加列 14 dtnew.Columns.Add(Day); 15 dtnew.Columns.Add(state); 16 for (int i = 0; i < dt.Rows.Count; i++) //遍历原数据向新datatable中赋值 17 { 18 dtnew.Rows.Add(dt.Rows[i].ItemArray); 19 } 20 foreach (DataRow dr in dtnew.Rows) //对特定的行添加限制条件 21 { 22 if (dr[2].ToString() =="0") 23 { 24 dr[2] = "工作日转非工作日"; 25 } 26 else 27 { 28 dr[2] = "非工作日转工作日"; 29 } 30 } 31 } 32 rptCurrency.DataSource = dtnew; //数据绑定 显示 33 rptCurrency.DataBind(); 34 if (dt.Rows.Count == 0) 35 WebUserControl1.Visible = false; 36 WebUserControl1.lblPage = TotalPage.ToString(); 37 38 }
|
请发表评论