C#中使用DataGridView按数字大小排序显示access中特定数据

access中表数据如下图所示:

该表中[试样编号]是以字符即文本格式填写在表中。

C#中使用DataGridView显示上述access表中指定数据,但数据需要按照[试样编号]的数字大小排列。

如果代码如下ORDER BY [试样编号],则DataGridView显示中显示的数据是以试样编号的字符顺序排列!

 SQLCmd = "SELECT 试样编号,m值,试验日期,备注 FROM 试验数据_MCGS WHERE [任务单编号]="
                     + "'" + taskinf.PjtSheetNo + "'" + " AND" + "([试验名称]=" + "'" + taskinf.TstName + "'"
                     + " OR" + "[试验名称]=" + "'" + taskinf.TstName + "补做" + "'" + ")" + " ORDER BY [试样编号] ";
                    
            tstDataDataSet = tstDataAccess.ReturnDataSet(SQLCmd);

SQL语句改为ORDER BY val(试样编号)或者ORDER BY CInt(试样编号)则可达到预期目的!
 SQLCmd = "SELECT 试样编号,m值,试验日期,备注 FROM 试验数据_MCGS WHERE [任务单编号]="
                     + "'" + taskinf.PjtSheetNo + "'" + " AND" + "([试验名称]=" + "'" + taskinf.TstName + "'"
                     + " OR" + "[试验名称]=" + "'" + taskinf.TstName + "补做" + "'" + ")" + " ORDER BY val(试样编号) ";
                    
            tstDataDataSet = tstDataAccess.ReturnDataSet(SQLCmd);



当试样编号为NULL时, ORDER BY val(试样编号)  和 ORDER BY cint(试样编号)   均会出错

ORDER BY val(试样编号)    错误提示为  标准表达式中数据类型不匹配
ORDER BY cint(试样编号)    错误提示为  无效的NULL使用

为避免出现这种情况,SQL语句改为

SELECT * FROM 试验数据_MCGS ORDER BY CInt(IIf(IsNull(试样编号),'0',试样编号))


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值