У меня возникли некоторые проблемы с фрагментом кода, я пытаюсь импортировать данные из источника (в настоящее время базы данных доступа) в пользовательскую форму, но я продолжаю получать вышеуказанную ошибку.
Когдая использую VBscript внутри исходной базы данных, все контакты импортируются правильно.Когда я чиню PST, он все еще дает эту ошибку.Когда я добавляю задержку 450 мс.ошибка также возникает, но позже в процессе.Открывать или закрывать Outlook не имеет значения.
Я использую следующий метод
string[] arrFolders = strFolders.Split('\\');
Outlook.Application app = null;
Outlook.MAPIFolder folder = null;
try {
app = new Outlook.Application();
folder = app.GetNamespace("MAPI").Folders[arrFolders[0]];
} catch (Exception ex) {
writeLogLine("Error creating Outlook instance: " + ex.Message);
MessageBox.Show("Error creating Outlook instance\r\n" + ex.Message);
intErrorCount++;
blnHasErrors = true;
blnAbort = true;
}
try {
for (int i = 1; i < arrFolders.Length; i++) {
folder = folder.Folders[arrFolders[i]];
}
} catch (Exception ex) {
writeLogLine("Error navigating to DRM folder: " + ex.Message);
MessageBox.Show("Error navigating to DRM folder\r\n" + ex.Message);
intErrorCount++;
blnHasErrors = true;
blnAbort = true;
}
setProgressbarMaximum(dtResults.Rows.Count);
setProgressbarMode(ProgressBarStyle.Continuous);
//int intRowCount = 0;
foreach (DataRow drItem in dtResults.Rows) {
if (strDRMType == "Contact") {
try {
Outlook.ContactItem x = (Outlook.ContactItem)folder.Items.Add("IPM.Contact." + strFormName);
for (int i = 0; i < arrMappings.GetLength(0); i++) {
if (arrMappings[i, 1] != null && drItem[arrMappings[i, 0]].ToString() != "") {
x.UserProperties[arrMappings[i, 1]].Value = drItem[arrMappings[i, 0]].ToString();
}
}
x.Save();
} catch (Exception ex) {
writeLogLine("Error importing contact: " + ex.Message);
intErrorCount++;
blnHasErrors = true;
}
}
, как я сказал, когда я повторяю код, он будет выдавать исключения после 100-200 контактов, когдая добавляю задержку, которую он получит для контакта 400/500 до сбоя.
Этот код предназначен для универсального инструмента импорта для этой конкретной формы, поэтому нет необходимости жестко кодировать имена исходных столбцов в форме.поля в коде импорта.
Любая помощь приветствуется.