0

MySQL のデータから DataGridView に MonthName を表示する際に問題が発生する

クエリ:

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

エラー:

System.ArguementException: パラメータが無効です

月番号を表示するMONTH(PurchaseDate)と完璧に機能しますが、月名を表示しようとするとデータグリッド エラーが発生します。MySQL で SQL を実行すると、期待どおりの結果が返されます。

DataError イベントを追加すると、あるMONTHNAME(PurchaseDate)べきフィールドに赤い感嘆符が表示されるだけです。

4

2 に答える 2

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 に答える
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 に答える