« 優れたフリーウェアでコンピューターを護ろう | トップページ | 新築 »

2004年2月14日

C#でADOXを使ったMDBファイルの作成

ちょっとMDBファイルをC#経由で使ってみようと思ったのですが、C#を使ったことがないのと、あまりDBを触ることがないので、インターネットなんかで調べながら、VBのサンプルなどを参考にしてテーブルを作る方法を模索してみました。
VBなんかのサンプルは多いんですが、C#って結構少なかったりするので、忘れないようにメモしておきます。

とりあえず、参照の追加により"ADOX"(Microsoft ADO Ext. 2.8 for DDL and Security)を追加しておくことが前提となります。
このサンプルを実行することで、とりあえず Id と Name を持ったテーブルが作成されるはずです。
また、Id については、AutoIncrementになります。


string DBSource = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\DB\\DB.MDB; Jet OLEDB:Engine Type=5";

try
{
  // データソースの作成を行う
  ADOX.CatalogClass catalog = new ADOX.CatalogClass();
  catalog.Create(DBSource);

  // テーブルを作成する(CUSTOMER)
  ADOX.TableClass table = new ADOX.TableClass();
  table.ParentCatalog = catalog;
  table.Name = "TABLE1";

  // レコードの作成その1(Id)
  ADOX.ColumnClass columnId = new ADOX.ColumnClass();
  columnId.ParentCatalog = catalog;
  // -->ここでADOX.DataTypeEnum.adIntegerを設定しておかないと"AutoIncrement"の設定でエラーとなる
  columnId.Type = ADOX.DataTypeEnum.adInteger;
  columnId.Name = "Id";
  columnId.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
  columnId.Properties["AutoIncrement"].Value = true;
  table.Columns.Append(columnId, ADOX.DataTypeEnum.adInteger, 0);

  // レコードの作成その2(Name)
  ADOX.ColumnClass columnName = new ADOX.ColumnClass();
  columnName.ParentCatalog = catalog;
  columnName.Name = "Name";
  columnName.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
  table.Columns.Append(columnName, ADOX.DataTypeEnum.adWChar, 64);

  table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "Id", "", "");
  catalog.Tables.Append(table);
}
catch (Exception dbex)
{
  System.Diagnostics.Debug.WriteLine(dbex.ToString());
}

|

« 優れたフリーウェアでコンピューターを護ろう | トップページ | 新築 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2700/195573

この記事へのトラックバック一覧です: C#でADOXを使ったMDBファイルの作成:

« 優れたフリーウェアでコンピューターを護ろう | トップページ | 新築 »