2012-03-26 4 views
1

У меня есть приложение .net, которое не работает на компьютере коллег (он работает удаленно, поэтому сложнее диагностировать проблему). Ошибка появляется, когда данные загружаются из базы данных Access. Вот код, который я использую для загрузки данных:Ошибка доступа к данным в .net

var constring = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=X:\db.mdb"; 
OleDbConnection c = new OleDbConnection(constring); 
c.Open(); 
var dataSet = new DataSet(); 
var adapter = new OleDbDataAdapter("SELECT * FROM Table", c); 
adapter.Fill(dataSet); 
c.Close(); 

Что может вызвать ошибку на данном этапе? Будет ли этот код нарушен, если Access не установлен или неправильная версия? Что еще может привести к разрыву этого кода?

Редактировать: Не C: \, но X: \, который является общим сетевым диском.

+5

Какая ошибка? Используйте точки останова, чтобы сузить его до определенной линии, которая дает вам головную боль. –

+5

Сообщите, что фактическая ошибка помогла бы – Quintium

+0

@ Даниэль, его коллега удален. Хотя это могло бы помочь, если бы это было возможно – Simon

ответ

1

На первый взгляд; - нет поставщика в машине - нет исходного файла C: \ db.mdb - исходный файл (база данных) не является собственным (без имени таблицы Table)

+0

Если это не очень старая система XP, этот провайдер должен присутствовать .. возможно, DB нет ... – gbianchi

+0

Кроме того, у пользователя могут быть не права доступа к файлу c: \ db.mdb – Cronan

+0

Db нет? Что это значит? Не могли бы вы рассказать об этом? – sooprise

1

Конечно, так как вы не имеете сказал, какая ошибка у вас есть, это просто догадка:

Я видел много случаев, когда производительность Jet по VPN-соединению очень медленная. Это часто приводит к попытке прочитать тайм-аут данных. Является ли база данных действительно находится по адресу C:\db.mdb? Если он находится на сетевом диске, t Адаптер, вероятно, отключается, когда он заполняет набор данных, особенно если у вас есть достаточное количество данных в таблице.

Если это является причиной вашей проблемы, вы можете переписать приложение для получения только тех записей, которые ему нужны, когда они им понадобятся.

В моей компании у нас есть компьютер, сидящий в нашем офисе для удаленных пользователей, чтобы использовать наше приложение Access. Они входят в систему с удаленным рабочим столом; поскольку машина находится в нашей локальной сети, производительность такая же, как у местных пользователей.

Если вы хотите добавить более подробную информацию на свой вопрос, мы сможем предоставить вам более полезные советы.

Смежные вопросы