Использование ADOX в Visual Studio 2010 отмечает ошибку - PullRequest
0 голосов
/ 24 января 2011
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 

В чем причина?

1 Ответ

1 голос
/ 26 января 2011

Вы получаете эту ошибку, потому что вы не указали поставщика 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 не поддерживает adVarChar . Но вы, вероятно, используете другую базу данных.

Я проверил это с имеющимся у меня файлом .mdb, и новая таблица была успешно добавлена ​​(я точно знаю, потому что при повторном запуске я получаю сообщение об ошибке «Таблица« TestResults »уже существует».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...