Asp.net mvc Datatable未按与SQL查询结果相同的顺序显示结果

Asp.net mvc Datatable未按与SQL查询结果相同的顺序显示结果,asp.net-mvc,stored-procedures,datatable,Asp.net Mvc,Stored Procedures,Datatable,嗨,我正在从事ASP.NETMVC项目。我正在使用显示客户详细信息。在控制器中,我调用一个存储过程,该过程在asc订单中记录客户详细信息。比如: SELECT id, firstname, lastname, colnum FROM TABLE1 ORDER BY colnum ASC colnum的结果为1,2,3,4,5。所以我得到的结果是1,2,3,4,5。因此,我在调试时得到如下结果: <thead> <tr>

嗨,我正在从事ASP.NETMVC项目。我正在使用显示客户详细信息。在控制器中,我调用一个存储过程,该过程在asc订单中记录客户详细信息。比如:

    SELECT id, firstname, lastname, colnum
    FROM TABLE1
    ORDER BY colnum ASC
colnum的结果为1,2,3,4,5。所以我得到的结果是1,2,3,4,5。因此,我在调试时得到如下结果:

    <thead>
     <tr>
     <th>
      id
      </th>
      <th>
      firstname
       </th>
       <th>
       lastname
      </th>

      </tr>
      </thead>
      <tr>
      <td> csv1 </td>
      <td> fname1 </td>
      <td> lname1 </td>
      </tr>
      <tr>
      <td> csv2 </td>
       <td> fname2 </td>
      <td> lname2 </td>
      </tr>
      <tr>
      <td> csv3 </td>
      <td> fname3 </td>
      <td> lname3 </td>
      </tr>
      <td> csv22 </td>
      <td> fname4 </td>
      <td> lname4 </td>
      </tr>
这是我调试时得到的结果。我在Viewdata中有这个结果

但当我将这个Viewdata绑定到datatable时,我会根据id的字母顺序得到结果

就是这样,

<tr>
<td> csv1 </td>
<td> fname1 </td>
<td> lname1 </td>
</tr>
<tr>
<td> csv2 </td>
<td> fname2 </td>
<td> lname2 </td>
</tr>
<tr>
<td> csv22 </td>
<td> fname4 </td>
<td> lname4 </td>
</tr>
<td> csv3 </td>
<td> fname3 </td>
<td> lname3 </td>
</tr>
正如您所看到的,在datatable中,我得到的结果类似于csv1、csv2、csv3、csv33、csv34、csv4、csv5。但是我需要显示像csv1、csv2、csv3、csv4、csv5、csv33、csv44这样的结果


我假设这是datatable的功能,即根据字母顺序获取结果。我怎样才能改变它以获得我想要的结果?

在网上搜索后,我找到了答案。我发布的这一想法可能对其他人有所帮助

正如我在文章中提到的,我的问题是,colnum结果。在从存储过程中选择时,我选择的是基于colnum的结果,但在将结果显示到datatable时,我没有将colnum结果绑定到datatable

所以它过去是根据id列进行排序的,在id列中我得到了类似csv1、csv2、csv23、csv24、csv4等结果

所以我使用的解决方案是将colnum结果绑定到datatable,但将其隐藏。在datatable中排序时,根据id列的colnum结果进行排序

这是我使用的代码:

  $('#results').dataTable({
        "aoColumnDefs": [


             { visible: false, targets: [0] },
           { targets: [ 1 ], orderData: [ 0 ] }

        ]
    });
这里,第一列是colnum,它不可见,第二列是id,我使用基于第1列的排序,也就是colnum


希望对其他人有用。

可能重复@DanielJ.G。我认为这不是一个重复的问题。与您提到的帖子相比,我的要求有所不同。我可能遗漏了一些东西,但您已经按照您希望的顺序从数据库中获得了结果,该数据库基于colnum列。所以,您不需要避免数据表再次排序您的结果吗?您是否尝试过使用aaSorting:[]?@DanielJ.G。你是对的,我在colnum得到了我所需要的结果。但我不希望显示此列,我希望根据colnum结果对其他列进行排序。所以我用了可视的方法。