2016-03-24 9 views
0

私はtableAdapterを使ってテーブルに値を挿入しています。私のデータセット内私のtableadapterはdatetime2フィールドを文字列として生成しています

相続人は私のテーブルaaTest

CREATE TABLE [dbo].[aaTest](
[id] [int] IDENTITY(1,1) NOT NULL, 
[INVOICEDATE] [datetime2](0) NULL, 
[CHARGEDATE] [datetime2](0) NULL, 
[EZPASS] [varchar](50) NULL, 
[PLAZA] [varchar](10) NULL, 
[PLAZA2] [varchar](10) NULL, 
[PDATE] [datetime2](0) NULL, 
[PTIME] [varchar](9) NULL, 
[PAMOUNT] [decimal](18, 2) NULL, 
[PBALANCE] [decimal](18, 2) NULL, 
[ACTION] [varchar](10) NULL 
) ON [PRIMARY] 

、私の初期充填コマンドがselect * from aatestで、IVEが今の私のデータセットデザイナーの下でINSERTクエリ

INSERT INTO [aatest] ([INVOICEDATE], [CHARGEDATE], [EZPASS], [PLAZA], [PLAZA2], [PDATE], [PTIME], [PAMOUNT], [PBALANCE], [ACTION]) 
VALUES (@INVOICEDATE, @CHARGEDATE, @EZPASS, @PLAZA, @PLAZA2, @PDATE, @PTIME, @PAMOUNT, @PBALANCE, @ACTION) 

を作成し、私のクエリが宣言されていますそのように

public virtual int InsertQuery(string INVOICEDATE, string CHARGEDATE, string EZPASS, string PLAZA, string PLAZA2, string PDATE, string PTIME, global::System.Nullable<decimal> PAMOUNT, global::System.Nullable<decimal> PBALANCE, string ACTION) 

問題i実際にはdatetime2である場合、INVOICEDATE,CHARGEDATEおよびPDATEが文字列として生成されています。これにより例外が発生する

(mydataset)に最適なオーバーロードされたメソッドの一致には、無効な引数がいくつかあります。

一時的にdatetimeに変更しましたが、しばらくしてから文字列に戻しました。

+0

datetime2の代わりに通常のdatetimeを試してください。私はテーブルアダプタは、新しいSQL Serverのデータ型を認識しないかもしれない古い技術だと思います。 – Jeremy

答えて

0

[datetime2][datetime]に変更する必要があります。問題が解決するはずです。

+0

いや、私は少しreasearchを行い、ジェレミーが言及したように、テーブルアダプターは古く、 'datetime2'や' date'を再調整しません。 – lizzy81

関連する問題