0

无法从 MySQL 中的数据在 DataGridView 中显示 MonthName

询问:

SELECT ItemName, Description, PurchaseDate, MONTHNAME(PurchaseDate) AS PurchaseMonth FROM tblItems

错误:

System.ArguementException:参数无效

显示月份编号,使用MONTH(PurchaseDate)效果很好,但是当我尝试显示月份名称时,出现数据网格错误。当我在 MySQL 中运行 SQL 时,它会返回预期的结果。

MONTHNAME(PurchaseDate)当我添加 DataError 事件时,它只会在应该在的字段中显示一个红色的感叹号。

4

2 回答 2

0

解决了。尽管 MonthName(PurchaseDate) 在直接针对数据库运行时有效,但从 VB.NET 传入时,我必须在 SQL 字符串中使用 Cast

修改后的 SQL:

SELECT ItemName, Description, PurchaseDate, CAST(MONTHNAME(PurchaseDate) AS CHAR) AS PurchaseMonth FROM tblItems
于 2012-07-18T07:46:52.897 回答
0

你为什么要这样做?

只需加载原始日期并使用格式字符串来获取名称

dim purchaseDate as DateTime = DateTime.Now

dim purchaseMonth as String = purchaseDate.Format("MMMM")
' or
dim purchaseMonth as String = String.Format("{0}", purchasDate")

数据绑定也支持格式化。

这种方法的优点是它尊重用户环境中的本地人:

' english: July
' german:  Juli
于 2012-07-18T07:53:56.543 回答