DataTable添加列时容易被忽略的问题!
我们经常用到DataTable.Columns.Add("ColumnsName"),久而久之形成了一种思维,当然也知道可以设置数据值类型,但经常可以忽略,因为没有什么影响.今天我就碰到这个问题,因为没有设置数据类型,出现了BUG
BUG出现的情况说明:
刚开始,用DataTable.Columns.Add("ColumnsName"),方式添加了列
我添加的列中有3行数据,分别为 12 ,14 ,7,添加行数据时,我用 Decimal 数据类型添加的.
然后我筛选数据,取出最大最小值,用表的DefaultView.Sort方法(默认排序,从小到大)
所以我重新修改了添加列
BUG出现的情况说明:
刚开始,用DataTable.Columns.Add("ColumnsName"),方式添加了列
我添加的列中有3行数据,分别为 12 ,14 ,7,添加行数据时,我用 Decimal 数据类型添加的.
然后我筛选数据,取出最大最小值,用表的DefaultView.Sort方法(默认排序,从小到大)
1DataView ViewTableName = 表名.DefaultView;
2ViewTableName.Sort = "列名"
3string strMin = ViewTableName[0]..Row["列名"].ToString();
4string strMan = ViewTableName[表名.Rows.Count-1]..Row["列名"].ToString();
调试时,发现ViewTableName行变成了7,14,12. 我郁闷:( ,不知道那的问题,刚开始认为是sort的问题,可是我改成了Desc排序,又变成了12,14,7 ,我晕倒.真在纳闷呢,看到flyingchen在线上,请教了一下,他认为是数据类型的问题.我仔细看看,在添加列时,并没有加上类型,因为以前经常用,认为没有什么关系.2ViewTableName.Sort = "列名"
3string strMin = ViewTableName[0]..Row["列名"].ToString();
4string strMan = ViewTableName[表名.Rows.Count-1]..Row["列名"].ToString();
所以我重新修改了添加列
1表名.Columns.Add("列名",System.Type.GetType("System.Decimal"));
然后再次排序,终于出现了7,12,14 了. 多谢flyingchen了.