2011-01-24 22 views
14

सी # में माइक्रोसॉफ्ट एक्सेस डेटाबेस फ़ाइल कैसे बनाते हैं यदि यह अभी तक मौजूद नहीं है?सी # प्रोग्रामेटिक रूप से माइक्रोसॉफ्ट एक्सेस डेटाबेस कैसे बनाएं?

+0

यह पहुँच होना जरूरी है या आप एक फ़ाइल के लिए देख रहे हैं डेटा स्टोर करने के लिए आधारित डेटाबेस समाधान? यदि आपको बस इतना ही चाहिए तो SQLite अच्छा और पोर्टेबल है। – jlafay

+0

हाँ अब मैं एंड्रॉइड पर SQLite का उपयोग कर रहा हूँ। –

उत्तर

15

सबसे सरल जवाब आपके प्रोग्राम में एक खाली .mdb/.accdb फ़ाइल एम्बेड करना और डिस्क पर लिखना है।

सही जवाब ADOX पुस्तकालय के साथ COM इंटरॉप उपयोग करने के लिए है:

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

OleDbConnectionStringBuilder का उपयोग कर अपने कनेक्शन तार उत्पन्न करने के लिए याद रखें।

+3

संकेत: मेरी मशीन – Matthias

9

प्रयास करें:

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

अपने कंप्यूटर पर, विंडोज 7 SP1 व्यावसायिक 64-बिट, मैं माइक्रोसॉफ्ट एडीओ Ext पाया। 2.8 डीडीएल और सुरक्षा के लिए सी: \ प्रोग्राम फ़ाइलें \ सामान्य फ़ाइलें \ सिस्टम \ ado \ msadox28.dll

यह भी एक संदर्भ के रूप में पाया जाता है:

जो संदर्भ

enter image description here

डिफ़ॉल्ट रूप से में रूप में शामिल है ADOX, स्तंभों के रूप में पाठ [बनाई गई हैं 255]। अलग-अलग डेटाटाइप के रूप में कॉलम बनाने के लिए यहां कुछ उदाहरण दिए गए हैं।

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

मैं बनाने के लिए डेटाटाइप्स की इस सूची में पाया जाता है और पहुँच डेटाबेस फ़ील्ड पढ़

पहुँच पाठ = adVarWChar

पहुँच मेमो = adLongVarWChar

पहुँच संख्यात्मक बाइट = adUnsignedTinyInt

एक्सेस न्यूमेरिक इंटीजर = adSmallInt

पहुँच संख्यात्मक लांग पूर्णांक = adInteger

पहुँच संख्यात्मक एकल प्रेसिजन = adSingle

पहुँच संख्यात्मक डबल प्रेसिजन = adDouble

पहुँच संख्यात्मक Replicatie-आईडी = adGuid

पहुँच संख्यात्मक दशमलव = adNumeric

एक्सेस दिनांक/समय = विज्ञापन

पहुँच मुद्रा = adCurrency

पहुँच AutoNumber = adInteger

पहुँच हां/नहीं = adBoolean

पहुँच हाइपरलिंक = adLongVarWChar

+1

पर "एडीओएक्स लाइब्रेरी" को "डीडीएल और सुरक्षा के लिए माइक्रोसॉफ्ट एडीओ एक्सटी 6.0" के रूप में पाया जा सकता है। ज़मीर की टिप्पणी पर बस पालन करें। –

+0

इस तथ्य पर बस एक बहुत ही देर से नोट कि यदि आप ऑटो नम्बर कॉलम बनाना चाहते हैं तो आपको 'ऑटोइनक्रिएशन' मान को सत्य पर सेट करना होगा। यह कैटलॉग बनाने के बाद होता है, जहां आप कॉलम के लिए 'कैटलॉगसूची' को अपने कैटलॉग के रूप में सेट करते हैं, फिर कॉलम की 'Properties ["AutoIncrement"] सेट करें। मान '' true' –

संबंधित मुद्दे