OpenFileDialog - не все ветви кода возвращают значение - C#
Формулировка задачи:
Ситуация такова, необходимо было создать приложение для экспорта данных пользовательской БД в основную БД. Не суть важно.
В чем проблема: имя и расположение пользовательской БД неизвестно, а
OpenFileDialog
предоставляет доступ к файлу (в моем случаи это база данных *.accdb) для дальнейшего соединение с БД. Воспользовался классомOpenFileDialog
, и решил его облагородить, прописав свой худой функционал вGetOpenFileDialog()
- он должен передавать имя/путь БД в классLogFile
для записи в history.log и для соединения с БД (класса для работы с бд еще нет), т.к. обращаться к нему придется довольно часто. И, видимо, вышло не корректно.. "не все ветви кода возвращают значение".using System; using System.Collections.Generic; using System.ComponentModel; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Dekanat { public partial class Form1 : Form { public Form1() { InitializeComponent(); } class LogFile { private StreamWriter sw; public LogFile(string path) { try { sw = new StreamWriter(path + ".log", true, Encoding.UTF8); } catch (SystemException e) { MessageBox.Show(e.ToString()); } } ~LogFile() { sw.Close(); } public void WriteLine(string line) { DateTime presently = DateTime.Now; line = presently.ToString() + " - " + line; sw.WriteLine(line); sw.Flush(); sw.Close(); } } private string GetOpenFileDialog() { string openfiledialog = null; try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "accdb(*.accdb)|*.accdb"; ofd.Title = "Открыть базу данных"; if (ofd.ShowDialog() == DialogResult.OK) // (op.ShowDialog() != DialogResult.Cancel) { var lf = new LogFile(@"C:\Documents and Settings\1\Рабочий стол\Dekanat\Dekanat\bin\Debug\history"); LogFile log = new LogFile("log"); lf.WriteLine(ofd.FileName); openfiledialog = ofd.FileName; return openfiledialog; } } catch (OperationCanceledException e) { MessageBox.Show(e.ToString()); } } private void изAccessToolStripMenuItem_Click_1(object sender, EventArgs e) { textBox1.Text = Path.GetFileName(GetOpenFileDialog()); } } }
Решение задачи: «OpenFileDialog - не все ветви кода возвращают значение»
textual
Листинг программы
private string GetOpenFileDialog() { string openfiledialog = null; try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "accdb(*.accdb)|*.accdb"; ofd.Title = "Открыть базу данных"; if (ofd.ShowDialog() == DialogResult.OK) // (op.ShowDialog() != DialogResult.Cancel) { var lf = new LogFile(@"C:\Documents and Settings\1\Рабочий стол\Dekanat\Dekanat\bin\Debug\history"); LogFile log = new LogFile("log"); lf.WriteLine(ofd.FileName); openfiledialog = ofd.FileName; return openfiledialog; } } catch (OperationCanceledException e) { MessageBox.Show(e.ToString()); } return null; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д