2011-01-24 19 views
14

C#でMicrosoft Accessデータベースファイルを作成するにはどうすればいいですか?C#でMicrosoft Accessデータベースをプログラムで作成するにはどうすればよいですか?

+0

それがアクセスする必要がないか、ファイルを探していますデータを格納するためのデータベースベースのデータベースソリューションそれが必要なのであれば、SQLiteは使いやすくて移植性があります。 – jlafay

+0

ええ、AndroidでSQLiteを使用しています。 –

答えて

15

最も簡単な答えは、空の.mdb/.accdbファイルをプログラムに埋め込み、ディスクに書き出すことです。

正解はADOXライブラリとCOM相互運用機能を使用することです:

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

OleDbConnectionStringBuilderを使用して接続文字列を生成することを忘れないでください。

+3

ヒント: "ADOXライブラリ"は、私のマシン上で "Microsoft ADO Ext。6.0 for DDL and Security"と表示される可能性があります。 – 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

、Windows 7のSP1 Professionalの64ビット、私はマイクロソフトADO外部を見つけました。 C:¥Program Files¥Common Files¥System¥ado¥msadox28.dll のDDLとセキュリティでは2.8です。

また、参考として発見された:参照デフォルトで

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-ID = adGuid

アクセス数値進= adNumeric

アクセス日時=追加日

アクセス通貨= adCurrency

アクセスオートナンバー= adInteger

アクセスはい/いいえ= adBoolean

アクセスのHyperLink = adLongVarWChar

+1

コメントが記載されています。ザミールのコメントをフォローするだけです。 –

+0

オートナンバー型の列を作成したい場合は、 'AutoIncrement'値をtrueに設定する必要があるという事実についてちょっと遅れて書きます。これは、Catalogを作成した後に起こります。そこでは、Catalogの列に 'ParentCatalog'を設定し、列の' Properties ["AutoIncrement"] .Value'を 'true'に設定します。 –

関連する問題