我有一段select的查詢陳述句,使用存貯程序進行了分頁和排序,單獨執行sql,是可以獲取到正常順序的資料,然后在代碼里,回傳datatable后,dt里的資料順序就改變了,而且變化是隨機的,只能手動再對datatable進行排序;
最奇怪的是,只有一部分的資料是這樣的情況,而這一部分資料跟其他的資料格式型別什么的都是一樣的。
有沒有人遇到過類似的情況,求解答!!!
uj5u.com熱心網友回復:
什么叫“只有一部分的資料是這樣的情況” 查詢資料回傳的是整個資料表,只要sql中順序正確,不會出現亂序。uj5u.com熱心網友回復:
很奇怪的問題。我是沒遇到過。uj5u.com熱心網友回復:
如果你的存貯程序進行了“正確”的排序,那么不會發生這現象,如果有應該是其他邏輯導致,你可以剝離其他邏輯,寫一個只有幾句抽取資料庫代碼的簡單工程測驗一下uj5u.com熱心網友回復:
使用存貯程序進行了分頁和排序于是,如果你沒有傳遞正確的排序引數,顯然結果不是你期望的
因為 datatable 可以手動排序
uj5u.com熱心網友回復:
肯定是某個地方進行了排序,認真看下自己的存盤程序代碼吧uj5u.com熱心網友回復:
強調一下:SQL 必須有明確的 order by , 結果才是想要的順序。
不加 order by , 結果順序是不可控的。
uj5u.com熱心網友回復:
這種情況我出過,你仔細檢查一下吧,肯定是哪個環節出重新排序了。如果真是用ado.net直接從資料庫提取的,不可能資料里查一個結果,到程式里另外一個結果
還加不加order by 都不無所謂,就算你不加,資料庫也會默認給你一個固定規則
除非是order by沒有加,你在測驗時,其它人還不停的改索引,這種概率太率了
uj5u.com熱心網友回復:
這種概率太底了uj5u.com熱心網友回復:
SQL陳述句檢查一下排序沒?uj5u.com熱心網友回復:
這個問題我剛剛遇到,遞回之后左連兩個表,在SQL里直接執行兩個左連接誰在前結果都一樣,但是datatable接收結果時C表在前接收的資料順序是亂的,B表在前datatable結果正常(遞回就是為了排序)
uj5u.com熱心網友回復:
我發現用SQL Server 2014 12.0.2269版本,無論哪個表在前datatable接收資料的順序都正常,用SQL Server 2014 12.0.2000版本就會出現剛剛說的情況uj5u.com熱心網友回復:
我也遇到了這樣的情況,找到datatable的js,找到其中的"bSort": true,這是datatable的排序功能,改成false以后就沒有出現亂序的現象了uj5u.com熱心網友回復:
小同志問題解決掉了嗎,我是因為一個無關的欄位里面的值變更受到了查詢的資料受到了影響。我通過存盤程序進行了分頁和排序,回傳的內容直接放進了dataset里面但是存盤程序直接執行的話回傳的結果是沒有問題的,但是放到打他table之后里面的資料排序就亂了,但是另一個可能是影響源頭的欄位值全部刪光的話,排序就不再受到影響。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/116333.html
標籤:C#
上一篇:HTML格式的Outlook郵件
下一篇:C#Excel倒入資料庫
