Siza International Ответов: 1

Мое приложение windowform перестало работать, когда мы выполняем его в режиме отладки


приложение перестало работать, когда я открываю его в режиме отладки с помощью C#
один образ-это

Что я уже пробовал:

private void Export()
{ 
 SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            saveDialog.FilterIndex = 2;

            if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                xlWorkBook.SaveAs(saveDialog.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                StripStatusLabel.Visible = true;
                StripStatusLabel.Image = Image.FromFile(@"\\90.0.0.8\d\Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images (3).jpg");
                StripStatusLabel.ForeColor = Color.Green;
                StripStatusLabel.Text = "Increment export to excel successfully...";
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
            }
            else if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
            {

            }
}
 private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }

Richard MacCutchan

Извините, но мы не можем догадаться, где он остановился.

OriginalGriff

Поэтому поставьте точку останова в верхней части каждого метода и шагайте до тех пор, пока он не "остановится".
Тогда расскажите нам, что он показывал только что.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли.
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Siza International

На самом деле я тоже словоохотлив...

Siza International

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

Siza International

После остановки приложения мое приложение показывает эту ошибку
Необработанное исключение типа ' System.AccessViolationException ' произошло в системе.Окна.Forms.dll

Дополнительная информация: попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена.

OriginalGriff

Поэтому используйте отладчик и узнайте, где он был непосредственно перед тем, как возникла проблема.
Возможно, то, что вы сделали, - это передали плохие данные или неверное значение в Excel, но мы не можем помочь вам решить это без сбора информации, так как мы не можем запустить ваш код: у нас нет никакого доступа к вашим данным!

А выкладывать изображение запрещено - картинка с сообщением о сбое все равно ничего полезного не говорит!

1 Ответов

Рейтинг:
1

Ralf Meier

Я могу только предполагать ... но я думаю, что вы должны изменить свой код следующим образом :

private void Export()
{ 
 SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            saveDialog.FilterIndex = 2;
            DialogResult myResult = saveDialog.ShowDialog ;  // <- Changes here !!!

            if (myResult == System.Windows.Forms.DialogResult.OK)  // <- Changes here !!!
            {
                xlWorkBook.SaveAs(saveDialog.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                StripStatusLabel.Visible = true;
                StripStatusLabel.Image = Image.FromFile(@"\\90.0.0.8\d\Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images (3).jpg");
                StripStatusLabel.ForeColor = Color.Green;
                StripStatusLabel.Text = "Increment export to excel successfully...";
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
            }
            else if (myResult == System.Windows.Forms.DialogResult.Cancel)  // <- Changes here !!!
            {

            }
}
... потому что если вы получаете DialogResult от SaveFileDialog, то SaveFileDialog больше не существует ...

Пожалуйста, попробуйте ...


Richard MacCutchan

Хорошо подмечено.

Ralf Meier

Спасибо за Ваш голос, Ричард