我正在尝试按日期获取博客文章以建立档案,更具体地说,我希望按一年中的月份呈现数据,例如 2012 年 7 月、2012 年 8 月等。哦,考虑我是一个新手。
数据由在标签中呈现日期的 ListView 检索,然后将标签文本(例如 Juni,2012)转发到我目前正在努力处理的代码隐藏中的新 SP。我正在尝试使用 LIKE 子句检查带有日期字段的参数,但是当我尝试使用参数“juli”的 SP 时,不知何故我得到了 June och July。它与数据类型有点混淆,我真的不知道在这种情况下使用什么。
SP:我已经将长度排除在参数数据类型之外,如果定义了长度,它会给我任何数据,但应该是 10。我还尝试将表中的日期时间转换为与@Date 有点相似的字符串,我对此有点迷失,对 LIKE 子句不太熟悉,所以请考虑我是新手。
@Date varchar
AS
BEGIN
SELECT A.ArticleID, A.Name, A.Header, A.Article, A.Date,
C.Category, C.CategoryID,
M.FirstName + ' ' + M.LastName as 'Author', A.ArticleLevel
FROM Article as A
LEFT JOIN Category as C on A.CategoryID = C.CategoryID
LEFT JOIN Member as M ON A.MemberID = M.MemberID
WHERE CONVERT(VARCHAR(4), a.Date, 100) + CONVERT(VARCHAR(4), a.Date, 120) LIKE @Date + '%'
ORDER BY A.Date, A.ArticleLevel Asc
END
exec [usp_GetArticlesForArticleDates] 'juli'
C#:“ArchiveArticlesListView”是嵌套的 ListView,用于呈现特定日期的文章。
protected void ArchiveListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
var articleId = (int)ArchiveListView.DataKeys[e.Item.DataItemIndex].Value;
//var dateParam = (int)ArchiveListView.DataKeys[e.Item.DataItemIndex].Value; // Tried to use the DataKey for Date and convert it to char, but that only left me with values like "309 j"
var DateLabel = e.Item.FindControl("DateLabel") as Label;
var date = DateLabel.Text;
var articlesLV = e.Item.FindControl("ArchiveArticlesListView") as ListView;
articlesLV.DataSource = Service.GetArticleArchive(date);
articlesLV.DataBind();
}
}