введите код здесь. В моей базе данных SQL Server мои адресные данные для под-номера (например, Unit 802) и streetNumber (например, 242 Elizabeth Street) хранятся отдельно.
Мне нужно отобразить их как один (т.е.802/242 Elizabeth Street), если subNumber содержит значение, в противном случае просто верните streetNumber, если его нет.
Я работал над решением, использующим IF ELSE и цикл foreach после доступа к данным через LINQ- но я застрял после того, как я завершил цикл.Я также был бы рад сделать это с помощью хранимой процедуры SELECT в SQL - открытой для предложений!
DataClassesDataContext dc = new DataClassesDataContext();
var recent = from p in dc.Properties
orderby p.modtime descending
where p.status == "Current"
select new
{
rsub = (p.subNumber).ToString(),
rnumber = (p.streetNumber).ToString(),
rstreet = p.street,
rsuburb = p.suburb,
rurl = p.propertyURL,
};
foreach (var home in recent)
{
if (string.IsNullOrEmpty(home.rsub))
{
string rnum = home.rnumber;
}
else
{
string rnum = home.rsub + "/" + home.rnumber;
}
}
recentrepeater.DataSource = recent;
recentrepeater.DataBind();
Yahia дал лучший вариант в c # - это решение SQL, которое я наконец-то нашел:
ALTER PROCEDURE GetPropertyShort
AS
SELECT TOP 5 ISNULL(convert(varchar(5), subNumber) + '/' + convert(varchar(5), streetNumber), convert(varchar(5), streetNumber)) as Number, street, suburb, propertyURL, modtime
FROM Property
ORDER BY modtime DESC