Im пытается сортировать колонку в порядке (1 ... ...) в sql, используя asp.net и C#. После некоторых исследований мне кажется, что мне нужно изменить свой тип столбца в SQL Server на int, но это невозможно, поскольку столбец хранит номера домов, и я мог бы получить номер дома 10a (например), поэтому в настоящее время установлено к варчару. Из-за этого он неправильно сортирует столбец. Я попробовал лить соответствующий столбец как int, но затем при запуске приложения я получил ошибку для его привязки в gridview, я также пробовал использовать это как * 1, но все еще получаю ошибки в части привязки при запускеномера не сортируются по порядку
SQL Заявление
SELECT DISTINCT tblcontact.ContactID, tblcontact.Forename, tblcontact.Surname,
tbladdress.[House Number], tbladdress.AddressLine1, tbladdress.AddressLine2,
tblcontact.[Business Name] FROM tblcontact INNER JOIN tbladdress ON tblcontact.AddressID = tbladdress.AddressID
LEFT OUTER JOIN tblDonate
ON tblcontact.ContactID = tblDonate.ContactID
WHERE (tbladdress.CollectionArea = @CollectionArea) AND
(tbladdress.AddressLine1 = @drpCollectionStreet)
ORDER BY tbladdress.[House Number] ASC
Gridview Markup
<asp:TemplateField HeaderText="House Number">
<EditItemTemplate>
<asp:TextBox ID="txtHouseNum" runat="server" Text='<%# Bind("[House Number]") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblHouseNum" runat="server" Text='<%# Bind("[House Number]") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Вот пример того, как его сортировки
21
22
27
28
5
6
8
9
Это, как я брошен как междунар который сортирует штраф в SQL, но я получаю сообщение об ошибке на Bind (выше)
SELECT DISTINCT tblcontact.ContactID, tblcontact.Forename, tblcontact.Surname, cast(tbladdress.[House Number] as int),
tbladdress.AddressLine1, tbladdress.AddressLine2, tblcontact.[Business Name]
FROM tblcontact INNER JOIN tbladdress ON tblcontact.AddressID = tbladdress.AddressID
LEFT OUTER JOIN tblDonate ON tblcontact.ContactID = tblDonate.ContactID
WHERE (tbladdress.CollectionArea = 'Queens Park') AND (tbladdress.AddressLine1 = 'Kings Road')
ORDER BY cast(tbladdress.[House Number] as int)
Ошибка во время выполнения
это ошибка при запуске (это самое значащий)
"House Number is neither a DataColumn nor a DataRelation for table DefaultView."}
Когда вы говорите «это не правильно сортировать столбец», как вы ожидаете, что это будет отсортирован, и как он действительно сортируется? Можете ли вы дать небольшой пример 3-5 строк «фактического» и «ожидаемого» поведения? –
показать нам, где и как вы литая к Int – prospector
ответов на quesions выше Я хочу, чтобы она сортируется численно по возрастанию – AShah