2014-05-15 18 views
9

Tôi nhận được một bảng sản phẩm và muốn nhận được sắp xếp dữ liệu theo thứ tự bảng chữ cái. Nhưng khi tôi viết truy vấn này họ vẫn đến bằng id. Tôi kiểm tra rất nhiều trang trong google nhưng không thể tìm thấy bất kỳ nguồn nào.Đặt hàng LINQ theo thứ tự chữ cái

var product = Db.tablename 
       .Where(s => s.colum == DropDownList2.SelectedValue) 
       .OrderBy(s=> s.Name); 
+1

nơi bạn sử dụng kết quả của sản phẩm? Tôi có nghĩa là bạn đang cố gắng để ràng buộc dữ liệu của bạn để một GridView hoặc kiểm soát khác? Bạn có thể vui lòng đăng cũng mã này? cảm ơn ! – Christos

+0

Có, tôi gửi thư giới thiệu đến chuyên mục dữ liệu. – Seration

Trả lời

12

này truy vấn

var product = Db.tablename 
       .Where(s => s.colum == DropDownList2.SelectedValue) 
       .OrderBy(s=> s.Name); 

sẽ không được thực hiện cho đến khi nó được yêu cầu. Vì vậy, bạn phải thay đổi nó thành cái sau:

var product = Db.tablename 
       .Where(s => s.colum == DropDownList2.SelectedValue) 
       .OrderBy(s=> s.Name).ToList(); 

Lý do tại sao điều đó xảy ra là thực tế bạn vừa khai báo truy vấn. Tôi có nghĩa là bạn đã không thực hiện nó. Đó là bản chất của các truy vấn LINQ, trong các thuật ngữ kỹ thuật được gọi là thực thi deffered. Mặt khác nếu bạn gọi phương thức ToList() ở phần cuối của câu hỏi của bạn, bạn sẽ kích hoạt thực thi ngay lập tức truy vấn này và đó là kết quả sẽ là một List cùng loại với s.Name.

+0

Tôi đang gettin System.Data.SqlClient.SqlException lỗi này: Các văn bản, ntext, và các loại dữ liệu hình ảnh không thể so sánh hoặc sắp xếp, trừ khi sử dụng toán tử IS NULL hoặc LIKE – Seration

+1

, hãy thay đổi kiểu thành nvarchar trong cơ sở dữ liệu của bạn. Điều đó sẽ không ảnh hưởng đến dữ liệu của bạn và nó sẽ giải quyết vấn đề của bạn. Tôi không biết bất cứ điều gì về lỗi này, nhưng đã thực hiện một chút googling tôi tìm thấy http://forums.asp.net/t/1481629.aspx?Help+Again, trong đó nêu rõ đề nghị trên. – Christos

+0

Kiểu Colom là văn bản tôi đã thay đổi nó varchar max và thêm ToList(). Nó s làm việc tuyệt vời :) Cảm ơn bạn rất nhiều – Seration

1

Bạn phải sử dụng ToList để thực thi sắp xếp.

var product = Db.tablename 
       .Where(s => s.colum == DropDownList2.SelectedValue) 
       .OrderBy(s=> s.Name).ToList(); 

Thứ tự không có gì, chỉ cần thực hiện truy vấn, ToList sẽ thực hiện sắp xếp cho truy vấn ban đầu.

+0

Tôi đang gettin lỗi này System.Data.SqlClient.SqlException: Các loại văn bản, ntext, và dữ liệu hình ảnh không thể so sánh hoặc sắp xếp, trừ khi sử dụng LÀ hành NULL hoặc LIKE. – Seration

+0

Bạn đang sử dụng phiên bản Sql nào? Có một số hạn chế cho phiên bản cũ của SQL mà có thể gây ra điều này lỗi – Fals

+0

chủ công ty sử dụng Mssql2012:/ – Seration

Các vấn đề liên quan