我的 tableadapter 将 datetime2 字段生成为字符串

my tableadapter are generating datetime2 fields as string

我正在使用 table 适配器将值插入 table。

这是我的 table 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,我创建了一个插入查询

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) 

我遇到的问题是,INVOICEDATECHARGEDATEPDATE 被生成为字符串,而实际上它们是 datetime2。这会导致异常

The best overloaded method match for (mydataset) has some invalid arguments.

将它更改为 datetime 是暂时的,但过了一会儿它们又重新生成为字符串。

您需要将 [datetime2] 更改为 [datetime],这应该可以解决您的问题。