2016-03-24 43 views
0

我使用tableAdapters插入值到表。我的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,并在我的数据集设计香港专业教育学院创建了一个插入查询

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) 

问题我m是INVOICEDATE,CHARGEDATEPDATE正在生成为字符串时,他们实际上是datetime2。这会导致异常

(mydataset)的最佳重载方法匹配有一些无效参数。

将其更改为datetime工作暂时,但过了一段时间后,他们重新生成字符串。

+0

尝试正常的日期时间而不是日期时间2。我认为tableadapters是旧技术,可能无法识别新的SQL Server数据类型。 – Jeremy

回答

0

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

+0

是的,我做了一些研究和jeremy提到的,tableadapters是旧的,并没有重新调整'datetime2'或'日期' – lizzy81