我正在开发一个包含已完成和链接数据库的Visual Basic 2008应用程序。我已经创建了许多可以正常运行的存储过程。但是,有一个存储过程允许用户输入两年。然后,开始年份和结束年份将在datagridview中显示结果。这在存储过程中运行时很有效,但是当它在Visual Basic中实现时,只有第二列显示结果,而year列保留为空。
我想知道是不是因为在数据库中,参数是在DateTime数据类型中,但是当我在存储过程中调用它时,它是一个整数。有什么建议吗?
@book_category Varchar(30),
@start_date INTEGER,
@end_year integer
AS
SELECT DATEPART(yyyy,Author.date_first_book), COUNT(DATEPART(yyyy,Author.date_first_book)) AS new_year_date
FROM Book
INNER JOIN Author
ON Book.book_ID = Author.author_ID
WHERE Author.category = @book_category
AND DATEPART(yyyy,Author.date_first_book) > @start_date AND DATEPART(yyyy,Author.date_first_book) < @end_year
GROUP BY DATEPART(yyyy,Author.date_first_book)
ORDER BY DATEPART(yyyy,Author.date_first_book) ASC
RETURN
继承了VB的代码,它和我一直在使用的其他代码一样,这个代码似乎不起作用
Private sel As New trendsCategoryDataContext
Private Sub searchBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles searchBtn.Click
Dim selTrends = sel.trendsCategory(trendsCategoryNametxt.Text)
trendsCategoryResults.DataGridView1.DataSource = selTrends