2011-01-24 59 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; 

對於我的代碼,我不得不列類型更改爲adVarWChar因爲Jet 4.0 doesn't support adVarChar。但是你可能使用了不同的數據庫。

我用的.mdb文件我已經進行了測試,成功添加了新表(我知道肯定是因爲當我再次運行它,我得到了錯誤「表‘TestResults’已經存在。」