2016-03-24 8 views
0

Im mit TableAdapters zum Einfügen von Werten in eine Tabelle.Meine TableAdapter generieren Datetime2 Felder als String

Heres meinen Tisch 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] 

in meinem Datensatz mein Erstbefüllung Befehl ist select * from aatest und ive einen Einsatz Abfrage

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

jetzt unter meinem Dataset-Designer erstellt, meine Abfrage deklariert wird als solche

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) 

das Problem ich m has is, INVOICEDATE, CHARGEDATE und PDATE werden als Strings erzeugt, wenn sie tatsächlich datetime2 sind. das verursacht die Ausnahme

Die beste überladene Methodenübereinstimmung für (Mydataset) hat einige ungültige Argumente.

das Ändern in datetime funktionierte vorübergehend, aber nach einiger Zeit wurden sie wieder in Strings umgewandelt.

+0

versuchen Sie eine regelmäßige Datetime anstelle von DateTime2. Ich denke, dass Tableadapter eine ältere Technologie sind, die den neuen SQL-Server-Datentyp möglicherweise nicht erkennt. – Jeremy

Antwort

0

Sie müssen [datetime2] zu nur [datetime] ändern, das sollte Ihr Problem beheben.

+0

ja ich habe ein wenig Forschung und wie Jeremy erwähnt, Tischadaptern sind alt und nicht recognize "Datetime2" oder "Date" – lizzy81