已有表table,表中有一列名为"Code",int 类型ID    Code
--------------
xx     10
xx     11
xx     12
xx     20
xx     21
xx     22
xx     30
xx     31
xx     32
我只想在DataView中显示Code十位为2的行,代码如下
DataView view=new DataView(table,"Code/10=2",null,DataViewRowState.CurrentRows);让人郁闷的是只有“20”符合条件,.Net把他们当浮点数来除了。
怎样以整数来除?或着将结果转换为整数?

解决方案 »

  1.   

    我这只是举的一个例子,我想知道的是两个整数相除怎么得出了小数?用什么办法可以让它以整数形式计算?在查询分析里运行 select * from table where code/10=2 是可以得到正确结果的
      

  2.   


    dataView.RowFilter = String.Format(CultureInfo.InvariantCulture.NumberFormat,
                         "Code/10 = {0}", 2);
      

  3.   

    String.Format(CultureInfo.InvariantCulture.NumberFormat,"Code/10 = {0}", 2);

    "Code/10=2"
    没什么区别,只是2.ToString()时使用了本地的格式化设置,现在的问题是等号左边是一个浮点数
      

  4.   

    dataView.RowFilter="Code%1=2"    没有报错,说明Code确实是int
    dataView.RowFilter="10%1=2"      也没有报错,10也是int
    dataView.RowFilter="Code/10%1=2" 报错:无法在 System.Double 和 System.Int32 上执行“Mod”操作。两个整数相除结果也应该是整数啊,怎么就出Double了
      

  5.   

    dataView.RowFilter = String.Format("CONVERT(Code/10,System.Int32) = {0}", 2);
      

  6.   


    CONVERT()会四舍五入,Code=29时计算结果是3