2011-01-24 5 views
0
Table table = new Table(); 
table.Name = "TestResults"; 
Column column = new Column(); 
column.Name = "SerialNumber"; 
column.Type = DataTypeEnum.adVarChar; 
column.DefinedSize = 14; 
table.Columns.Append(column); 
catalog.Tables.Append(table); --- flags "Object is no longer valid" exception 

根本原因は何ですか?Visual Studio 2010でADOXを使用するとエラーになります

答えて

1

少なくとも、指定したコードサンプルではなく、OLE DBプロバイダを指定していないため、このエラーが発生しています。その後、あなたの前にこのコードを追加し、ADODBのタイプライブラリへの参照を追加します。私のコードの場合

Connection conn = new Connection(); 
string connectionString = "Provider='Microsoft.Jet.OLEDB.4.0'; Data Source='path-to-some-database-file.mdb'"; 
conn.Open(connectionString, "userid", "password", -1); 
catalog.ActiveConnection = conn; 

を、私はJet 4.0 doesn't support adVarCharのでadVarWCharに列の型を変更しなければなりませんでした。しかし、おそらく別のデータベースを使用しています。

これは私が持っていた.mdbファイルでテストしましたが、新しいテーブルが正常に追加されました(私は再度実行したときに "テーブル 'TestResults'が既に存在するためです)。

関連する問題