2016-03-30 10 views
0

Yüzlerce sütuna ve çeşitli veri türlerine (ints, string, date) sahip bir Excel tablosum var. Bu satırları bir MS Access veritabanı tablosuna programlı olarak eklemek için C# kullanıyorum.Bir SQL dizesiyle MS Access'e bağlanırken doğru veri türü nasıl verilir?

Sorgu dizesini oluştururken, tüm Excel hücre içeriği dizgiler haline gelir. Sorgu dizesi böyle bakıyor biter:

string query = "INSERT INTO tbl_Items VALUES ('toy duck', 'yellow', '122', '2015-01-16')" 

nedeniyle ele alınması sütunların miktar ve esnek kodu için ihtiyaca INSERT INTO tbl_Items VALUES ('toy duck', 'yellow', CLng('122'), CDate('2015-01-16')) ile benim SQL dizesi söz konusu değildir yılında türünü Casting.

Peki, Access veritabanıma esnek bir programlı birden çok veri türünü nasıl ekleyebilirim? Access içindeki veritabanı tablosunu önceden tanımlamayı umursamıyorum, ancak gelen dizeleri otomatik olarak değiştirip değiştirmeyeceğinden emin değilim. Herhangi bir ipucu?

cevap

0

Oh wow! Sadece tablo sütun türlerini önceden tanımlamak işe yarayacaktır! MS Access otomatik olarak dizeleri gerekli türe dönüştürür.

Örneğin

:

***tbl_Items*** 
name: String, 
color: String, 
weight: Number, 
delivery_date: Date 

kabul ve SQL dizesi otomatik döküm Will:

string query = "INSERT INTO tbl_Items VALUES ('toy duck', 'yellow', '122', '2015-01-16')" 
+1

Evet, sürece veri * * Hedef veri türüne dönüştürülebilir gibi bu irade iş. Sadece '01/03/2015' gibi bir tarih dizgisine dikkat edin, bölge ayarlarına veya mevcut ay evresine bağlı olarak 3 Ocak veya 1 Mart tarihleri ​​arasında sona erebilir. :) Ama 'yyyy-mm-dd' güvenlidir. – Andre