2011-01-24 19 views

cevap

15

En basit yanıt, programınıza boş bir .mdb/.accdb dosyasını gömmek ve diske yazmaktır.

doğru cevap ADOX kütüphanesi ile COM birlikte çalışabilirlik kullanmaktır:

var cat = new ADOX.Catalog() 
cat.Create(connectionString); 

OleDbConnectionStringBuilder kullanarak bağlantı dizeleri oluşturmayı unutmayın.

+3

İpucu: "ADOX kitaplığı", makinemde – Matthias

9

Dene: Benim bilgisayarda

using ADOX; //Requires Microsoft ADO Ext. 2.8 for DDL and Security 
using ADODB; 

public bool CreateNewAccessDatabase(string fileName) 
{ 
bool result = false; 

ADOX.Catalog cat = new ADOX.Catalog(); 
ADOX.Table table = new ADOX.Table(); 

//Create the table and it's fields. 
table.Name = "Table1"; 
table.Columns.Append("Field1"); 
table.Columns.Append("Field2"); 

try 
{ 
    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + "; Jet OLEDB:Engine Type=5"); 
    cat.Tables.Append(table); 

    //Now Close the database 
    ADODB.Connection con = cat.ActiveConnection as ADODB.Connection; 
    if (con != null) 
    con.Close(); 

    result = true; 
} 
catch (Exception ex) 
{ 
    result = false; 
} 
cat = null; 
return result; 
} 

http://zamirsblog.blogspot.com/2010/11/creating-access-database.html

9

, Windows 7 sp1 Professional 64-bit, ben Microsoft ADO Ext bulundu. C için DDL ve Güvenlik için 2.8: Program Dosyaları \ Ortak Dosyalar \ Sistem \ ado \ msadox28.dll.

Aynı zamanda bir referans olarak bulunursa

: referanslar Varsayılan olarak

enter image description here

ADOXolarak yer almaktadır

, sütunlar metin [olarak oluşturulur 255]. Aşağıda, farklı veri türleri olarak sütunlar oluşturmak için birkaç örnek verilmiştir.

table.Columns.Append("PartNumber", ADOX.DataTypeEnum.adVarWChar, 6); // text[6] 
table.Columns.Append("AnInteger", ADOX.DataTypeEnum.adInteger); // Integer 

I = adLongVarWChar

Erişim Sayısal Byte = adUnsignedTinyInt

oluşturmak için veri türlerini bu listeyi bulundu ve access veritabanı alanları

Erişim Metin = adVarWChar

Erişim Memo okumak

Erişim Sayısal Tamsayı = adSmallInt

Erişim Sayısal Uzun tamsayı = adInteger

Erişim Sayısal Tek Hassas = adSingle

Erişim Sayısal Çift Hassas = adDouble

Erişim Sayısal Replicatie-id = adGuid

Erişim Sayısal Ondalık = adNumeric

Erişim Tarih/Saat = adDate

Erişim Para = adCurrency

Erişim Otomatik Sayı = adInteger

Erişim Evet/Hayır = adBoolean

Erişim HyperLink = adLongVarWChar

+1

"Microsoft ADO Ext. 6.0 için DDL ve Güvenlik için" bulunabilir. Zamir'in yorumunu takip ediyorum. –

+0

AutoNumber sütunu yapmak istiyorsanız, AutoIncrement değerini true olarak ayarlamanız gerektiği konusunda çok geç bir not. Bu, Kataloğunuz olarak sütun için 'ParentCatalog' ayarını yaptığınız Katalog oluşturulduktan sonra gerçekleşir, daha sonra sütunun 'Özellikler ['AutoIncrement'] değerini ayarlayın. –

İlgili konular