0

我正在开发一个包含完整和链接数据库的 Visual Basic 2008 应用程序。我创建了许多可以正常工作并且完美显示的存储过程。但是,有一个存储过程允许用户输入两年。然后开始年份和结束年份在 datagridview 中显示结果。这在存储过程中运行时效果很好,但是当它在 Visual Basic 中实现时,只有第二列显示结果,而年份列留空。

我想知道是不是因为在数据库中参数是 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 作为新趋势CategoryDataContext

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
4

0 回答 0