2012-04-20 22 views
6

ASP.NET/VB kullanıyorum ve bir Tarih/saat alanına bir tarih ve saat girmeye çalışıyorum ancak bir hata alıyorum (Veri türü uyuşmazlığı) ölçüt ifadesi. İşte benim kod basitleştirilmiş versiyonu:Erişim veritabanına tarih/saat ekleme

Dim myDate As Date = Now() 
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (?)", myConn) 
myIns1.Parameters.AddWithValue("@myDate", myDate) 
myIns1.ExecuteNonQuery() 

Şu hatayı alıyorum emin niçin ve bu hatta geçerli tarih ekleme yaklaşmak doğru yolu ise oldukça emin değildi. Diğer benzer sorulara bakıldığında, bunun yapılabilmesi için birkaç farklı yol var gibi görünüyor, ancak teknik bilgim sınırlıdır, bu yüzden bunu anlamakta zorlanıyorum (diğer bir deyişle, bildiğim teknik terimleri kullanan cevapları deşifre etmek). hakkında hiçbir şey).

Şimdiden teşekkürler!

cevap

2

Parametreyi tamamen atlayabilir ve NOW işlevini doğrudan sorguya yazabilirsiniz.

Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (NOW())", myConn) 
myIns1.ExecuteNonQuery() 

Bu cevap (yukarıda bir) muhtemelen daha iyi bir çözümdür, ama parametre adlı değildi çünkü orijinal kod işe yaramadı nedeni budur. Bu deneyebilirsiniz: (Sistem ad ithal ediliyor ise)

Dim myDate As Date = Date.Now 
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (@myDate)", myConn) 
myIns1.Parameters.AddWithValue("@myDate", myDate) 
myIns1.ExecuteNonQuery() 

+0

Çalışıyor, teşekkürler! – Sara

+1

Adlandırılmış parametreler, OleDb ile çalışmazlar.Yalnızda çalışırlar.Önceki değer çalışmadığı için bir DateTime değerinden daha fazla çalışmadı. : http://www.mikesdotnetting.com/Article/92/MS-Access-Date-and-Time-with-ASP.NET –

+0

Mike, parametrelerin sadece konumsal olarak çalıştığını söylediğinizde haklısınız. Çalışmıyor demiş çünkü "geçilen değer bir DateTime değildi" .Bu kesinlikle bir DateTime idi. ToOADate() işlevi bir DateTime'dan bir Double'e olan değeri dönüştürür. –

-1

deneyin bir TARİH veri türü, sadece TARİH sunmuyor

Dim myDate As Date = Now() 

için

Dim myDate As DateTime = Now() 

MS Access değişen.

+0

Tarih ve DateTime VB.NET tam olarak aynı anlama geliyor. –

+0

Denedim, ancak hala aynı hatayı aldım. – Sara

+0

["DATETIME" veri türü ... eşanlamları "DATE", "TIME", "DATETIME" ve "TIMESTAMP" dır (http://msdn.microsoft.com/en-us/library/aa140015 (office.10) .aspx # acintsql_datatypes) – onedaywhen