0

ADOX を使用して新しい MS Access データベース テーブルを作成したいと考えています。このページには VB.NET のコードがありますが、明らかに C# では動作しません (コードを「変換」したい場合)。誰かがそれを正しく変換してくれたら、私は感謝します。


VB.NET では次のとおりです。

     Dim Cn As ADODB.Connection, Cat As ADOX.Catalog, _
                        objTable As ADOX.Table

ただし、C# には ADODB.Connection メソッドはありません。

ここに私のコードがあります、私は本当にそれがOKだとは思いません:

        string ConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/TempDB.mdb") + ";";
        OleDbConnection conn = new OleDbConnection(ConnStr);

        ADOX.Catalog Cat = new ADOX.Catalog();
        ADOX.Table objTable = new ADOX.Table();
        conn.Open();

        Cat.ActiveConnection = conn; //Here is the error message "Specified cast is not valid."

        objTable.Name = "Table2";

        objTable.Columns.Append("ID", DataTypeEnum.adVarChar, 100);

        objTable.Keys.Append("PrimaryKey", KeyTypeEnum.adKeyPrimary, "ID", "Table1", "IDColumn");

        Cat.Tables.Append(objTable);
4

1 に答える 1

2

プロジェクトに ADOX アセンブリへの参照を追加することを忘れないでください。これが完了すると、C# コードは次のようになります。

using System;
using ADOX;

namespace ConsoleProgram1
{
    public class ConsoleProgram1
    {

        public static void Main(string[] args)
        {

              Catalog cat = new Catalog();

              cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Data Source=D:\AccessDB\NewMDB.mdb;" & _
                 "Jet OLEDB:Engine Type=5");

              Console.WriteLine("Database Created Successfully")

        }

    }
}

私の ADOX への露出はこの質問に限定されていますが、あなたのリンクで見たコード スニペットは心強いものではありません。行のようなものは、cat = Nothing.Net が VB6 からどのように変化したかについての誤解を示しています。願わくば、それが図書館にまで及ばないことを願っています。

于 2009-10-22T17:39:46.473 に答える