Оружейный магазин

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВВАНИЮ

Государственное образовательное  учреждение высшего профессионального  образования

«САНКТ-ПЕТЕРБУРГСКИЙ  СУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО  ПРИБОРОСТРОЕНИЯ»

 

 

КАФЕДРА ИВТ

 

 

КУРСОВАЯ РАБОТА

ЗАЩИЩЕНА С  ОЦЕНКОЙ

 

РУКОВОДИТЕЛЬ

 

___________________________________        ___________________             ___________Григорян К.А.______

Должность, ученая степень, звание               подпись, дата                              инициалы, фамилия

 

 

 

КУРСОВАЯ  РАБОТА

 

 

Тема: «Оружейный магазин»

 

 

 

по дисциплине: Объектно-ориентированное программирование.

 

 

 

 

 

РАБОТУ ВЫПОЛНИЛ

 

СТУДЕНТ ГР. 1ПО-04        ________________                                 Малый С.С.

                                                                       подпись, дата                                  инициалы, фамилия     

 

 

 

 

 

 

 

 

 

Пятигорск

2007

Содержание

 

 

Введение…………………………………………………………………………...

4

 

Подготовительная работа……………..………………………………………….

5

 

Разработка требований пользователя к системе и ПО ………………………....

6

 

Сценарий работы системы………….……………………………………………

7

 

Проектирование архитектуры  системы и анализ требований к  ПО…………...

8

 

Детальное проектирование ПО. Характеристика компонентов системы……..

9

 

Тестирование……………………………………………………………………...

14

 

Модель базы данных……………………………..……………………….………

16

 

Описание выходных форм………………………..………………………………

18

 

Себестоимость…………………………………………………………………….

19

 

Код программы……………………………………………………………………

20

 

Заключение …………………………………………………………………........

35

 

Литература………………………………………………………………………..

36


 

 

 

 

 

 

 

 

 

 

 

Введение

 

В любой спроектированной системе есть свои цели и задачи. В данной работе целью является автоматизация учёта продаж боевых единиц, на основе объектно-ориентированного подхода к разработке информационных систем. Основной целью курсового проекта является написание программы на языке программирования – C# -, освоение принципов объектно-ориентированного программирования, получение навыков работы с базой данных.

Программа должна обладать некоторыми свойствами, которые необходимы для понимая работы программы любым пользователем:

    • программа должна содержать подсказки, которые помогут пользователю при работе;
    • программа должна быть наглядной;
    • В результате программа должна автоматизировать продажу боевых единиц;

 

 

 

 

 

 

 

 

 

 

 

 

 

Подготовительная  работа

 

Задача, поставленная при  написании курсового проекта, состоит  в следующем: необходимо спроектировать и разработать проект «Оружейный магазин». Всю процедуру работы с  клиентом и программой производит консультант  или менеджер фирмы.

Разработка будет проведена  для системы программирования «C#» с применением СУБД «Microsoft SQL Server 2005».

План работы включает в себя следующие этапы разработки ПО:

- Формирование требований  к системе.

- Анализ требований к системе и ПО и разработка сценария работы системы.

- Проектирование архитектуры системы.

- Проектирование архитектуры ПО.

- Детальное проектирование ПО

- Кодирование и тестирование ПО.

- Интеграция ПО.

 

 

 

 

 

 

 

 

Разработка  требований пользователя к системе  и ПО

 

Для работы на компьютере должен быть установлен Microsoft SQL – Server, а также Microsoft Visual Studio.NET, в которую должен быть включен C#.

Программа, которая будет  написана, разрабатывается для любой  фирмы, занимающейся продажей оружия. Количество вводимых данных не ограничено.

Система должна выполнять следующие функции:

    • Отображение содержимого баз данных;
    • Запись информации  в базу данных;
    • Поиск информации в базе данных;
    • Редактирование записей;
    • Удаление информации из базы данных;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сценарий работы системы

 

Менеджер фирмы, находящийся в магазине, каждому потенциальному покупателю предоставляет прайс-лист на виды боевых единиц. Для получения лицензии на приобретение боевой единицы (оружие) необходимо предоставить обязательный перечень документов, согласно федерального закона РФ о использовании и эксплуатации боевой единицы (оружие). Если покупатель не знает необходимого обязательного перечня документов на приобретение боевой единицы (оружие), то менеджер фирмы выдает необходимую информацию покупателю на руки, т.е. необходимые документы, которые нужно иметь при себе. Если покупатель выполнил все условия, то покупатель должен рассказать предпринимателю закон РФ о хранении и использовании оружия. После этого вся информация о покупке заносится в базу данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проектирование  архитектуры системы и требований к ПО

 

Программное обеспечение  будет состоять из следующих компонентов:

- Главной формы –  где будет находиться выбор  компонентов: Таблицы, Печать, О  программе, Выход.

- Виды оружия –  Здесь будут выполняться все необходимые действия по записи и редактировании информации в БД.

- Виды лицензий –  Здесь будут хранится все виды  лицензий для всех потенсеальных   покупателей.

- Необходимые документы–  Здесь будут хранится все виды  документов необходимых для сдачи для получения лицензии.

- Печать  – Здесь  формируются все необходимые  выходные формы

- Выйти. Выход из  программы 

- О программе. Содержит  сведения о разработчике и  авторе проекта, а также о  версии проекта.

 

 

 

 

 

 

 

 

 

 

 

Детальное проектирование ПО. Характеристика компонентов системы

При запуске приложения пользователю предоставляется главное меню (Рис.1).

Главное меню состоит из пунктов: Таблица, Печать, О программе, Выход.

                           

(Рис.1)

 

При выборе пункта Меню пользователь выбирает таблицу в которой он хочет внести данные. Первая таблица-это «виды оружия». В данной таблице пользователь может внести Тип оружия, Номер, Калибр. Так же пользователь может редактировать данные хранящихся в БД . (Рис.2)

 

 

(Рис.2)

 

 

Следующий пункт Меню-это «виды лицензии». В данной таблице пользователь может внести ФИО, Тип оружия, Тип лицензии, Срок действия. Так же пользователь может редактировать данные хранящихся в БД и выполнять поиск. (Рис.3)

  

(Рис.3)

 

 

При выборе пункта Меню пользователь выбирает пункт- «необходимые документы». В  данной таблице пользователь может внести ФИО, Мед. заключение, Фотографии , Дата сдачи. Так же пользователь может редактировать данные хранящихся в БД . (Рис.4)

  

 

(Рис.4)

 

При выборе пункта «Печать» пользователь может выбрать «Прайс-лист», где он может посмотреть цены, а так же внести новые данные, редактировать данные хранящихся в БД . Для того чтоб распечатать- необходимо нажать на кнопку просмотр и для дальнейшей работы надо нажать на кнопку в excel. (Рис.5)

 

 

(Рис.5)

 

 

В пункте «Печать» пользователь может выбрать «Правила эксплуатации» , где он может узнать результаты своих знаний о законах РФ, а так же внести новые данные, редактировать данные хранящихся в БД . Для того чтоб распечатать необходимо нажать на кнопку просмотр и для дальнейшей работы надо нажать на кнопку в excel. (Рис.6)

 

(Рис.6)

 

 

А также пользователь может зайти в раздел «о программе» и узнать: кем, когда, где и на каком языке программа была разработана данная программа. (Рис.7)

 

(Рис.7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тестирование  ПО.

При вводе данных в форму «Вид лицензии» (Рис 8), (ФИО, Тип оружия, Тип лицензии, срок действия) (согласно закону РФ).

(Рис 8)

После ввода  данных можно сделать четыре действия (Записать, Найти, Просмотреть, Удалить).

 

Первое действие «Запись». При выполнении этого действия выполняется запись данных в базу данных (Рис 9).

(Рис 9).

 

Второе действие над данными «Найти». Этим действием  пользователь находит нужную лицензию в базе данных по ФИО (согласно закону РФ) (Рис 10).

(Рис 10).

 

Третье действие над данными  «Просмотреть». Этим действием пользователь имеет возможность просмотреть  все данные о лицензиях (Рис 11). Изменения  данных в базе данных происходит по ключу. Ключ формы является ФИО гражданина.

(Рис 11).

 

 

Четвертое действие над данными «Удаление». Этим действием  пользователь удаляет данные о нужном гражданине (Рис 12). Удаление данных из базы данных происходит по ключу. Ключ формы является ФИО гражданина.

(Рис 12).

 

 

 

 

 

 

 

Модель  базы данных

 

При работе с базой данных были созданы следующие таблицы:

    1. Таблица «Виды оружия» состоит из отношения  Оружие  на складе (Код_оружия, Номер_оружия, Калибр). Ключом в этом отношении является атрибут Номер_оружия;
    2. Таблица «Виды лицензий» состоит из отношения Вид лицензии  (ФИО, Тип_оружия, Тип_лицензии, Срок_действия); ключом в данном отношении является ФИО;
    3. Таблица «Необходимые документы» состоит из отношения Необходимые документы  (ФИО, Медицинское_залючение, Фотографии, Дата_сдачи). В этом отношении первичным ключом является атрибут ФИО.

 

 

 

 

 

 

 

 

 

 

 

 

Описание выходных форм

 

Форма для печати  Прайс-лист боевых единиц

Прайс – лист боевых единиц

Оружие

Характеристики

Цена

     
     
     

 

 

 

Форма для печати Правила эксплуатации

 

Выполненные объекты

ФИО

Закон РФ о хранении

Закон РФ о эксплуатации

Дата 

       
       
       
       

                         

 

 

 

 

 

 

 

 

 

 

Себестоимость

 

Неотъемлемой частью разработки любого программного обеспечения является оценка его себестоимости. Оценка стоимости должна быть объективной, чтобы дать компании-разработчику достаточно точный прогноз себестоимости проекта.

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

Цена = <количество функциональных точек> х <стоимость одной точки>

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

При анализе  данной программы  установлено, что в ней использована 71 функциональная точка, а стоимость  одной функциональной точки была установлена в 200 рублей.

Следовательно, стоимость  данного программного продукта составила  14200 рублей.

 

 

 

 

 

 

 

 

 

 

 

Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsApplication2

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        public static string strcon = "Data Source=COMP910-79;Initial Catalog=or_lavka;Integrated Security=false; User ID = student; Password = student;";

 

 

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Close();

        }

 

        private void видыОружияToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form2 f2 = new Form2();

            f2.Show();

        }

 

        private void видыЛицензийToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form3 f3 = new Form3();

            f3.Show();

        }

 

        private void необходимыеДокументыToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form4 f4 = new Form4();

            f4.Show();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

 

        }

 

        private void характеристикаToolStripMenuItem_Click(object sender, EventArgs e)

        {

 

        }

 

        private void печатьToolStripMenuItem_Click(object sender, EventArgs e)

        {

 

        }

 

        private void прайслистToolStripMenuItem_Click(object sender, EventArgs e)

        {

 

            Form5 f5 = new Form5();

            f5.Show();

        }

 

        private void соглашениеToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form6 f6 = new Form6();

            f6.Show();

        }

 

        private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form7 f7 = new Form7();

            f7.Show();

        }

 

     

    }

}namespace Kursovik

{

    public partial class Form2 : Form

    {

SqlConnection conn = new SqlConnection();

        SqlCommand cmd = new SqlCommand();

        SqlDataReader rdr;

        public void tablica()

        {

            conn.ConnectionString = Form1.strcon;

            SqlDataAdapter da = new SqlDataAdapter("select * from vidor", conn);

            DataTable dt = new DataTable();

 

            da.Fill(dt);

            dataGridView1.DataSource = dt.DefaultView;

            dataGridView1.Columns[0].HeaderText = "Тип оружия";

            dataGridView1.Columns[1].HeaderText = "Номер";

            dataGridView1.Columns[2].HeaderText = "Колибр";

           

        }

        public Form2()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

          

            cmd.CommandText = "insert into vidor (tip,nomer,kalibr) values('" + textBox1.Text + "'," + textBox2.Text + "," + textBox3.Text + ")";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();

            tablica();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

            cmd.CommandText = "select * from vidor where nomer= " + textBox2.Text + "";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

            rdr = cmd.ExecuteReader();

            rdr.Read();

            textBox1.Text = rdr.GetString(0);

            textBox3.Text = rdr.GetDecimal(2).ToString();

 

            conn.Close();

 

            tablica();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

           

            cmd.CommandText = "select * from vidor where nomer=" + textBox2.Text;

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

 

            rdr = cmd.ExecuteReader();

 

 

            if (rdr.Read())

            {

 

                conn.Close();

                cmd.CommandText = "delete from vidor where nomer= " + textBox2.Text;

                cmd.CommandType = CommandType.Text;

                cmd.Connection = conn;

                conn.Open();

                cmd.ExecuteNonQuery();

                conn.Close();

                tablica();

            }

           else MessageBox.Show("Запись с таким кодом не существует");

        }

 

        private void Form2_Load(object sender, EventArgs e)

        {

 

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

 

            conn.ConnectionString = Form1.strcon;

 

 

 

            cmd.CommandText = "select * from vidor";

 

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

 

            cmd.ExecuteReader();

 

 

            conn.Close();

 

            tablica();

        }

    }

}

namespace Kursovik

{

    public partial class Form3 : Form

    {

SqlConnection conn = new SqlConnection();

        SqlCommand cmd = new SqlCommand();

        SqlDataReader rdr;

 

        public void tablica()

        {

 

            conn.ConnectionString = Form1.strcon;

            SqlDataAdapter da = new SqlDataAdapter("select * from vidlic", conn);

            DataTable dt = new DataTable();

 

            da.Fill(dt);

            dataGridView1.DataSource = dt.DefaultView;

            dataGridView1.Columns[0].HeaderText = "ФИО";

            dataGridView1.Columns[1].HeaderText = "Тип оружия";

            dataGridView1.Columns[2].HeaderText = "Тип лицензии";

            dataGridView1.Columns[3].HeaderText = "Срок действия";

        }

        public Form3()

        {

            InitializeComponent();

        }

 

        private void Form3_Load(object sender, EventArgs e)

        {

 

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

            cmd.CommandText = "insert into vidlic (FIO,tipor,tiplic, srok) values('" + textBox1.Text + "','" + comboBox1.Text + "','" + textBox4.Text + "'," + textBox3.Text + ")";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();

 

            tablica();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

                    

            cmd.CommandText = "select * from vidlic where FIO='" + textBox1.Text + "'";

 

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

            rdr = cmd.ExecuteReader();

            rdr.Read();

            comboBox1.Text = rdr.GetString(1);

            textBox4.Text = rdr.GetString(2);

            textBox3.Text = rdr.GetInt32(3).ToString();

        

 

            conn.Close();

 

            tablica();

 

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

 

            conn.ConnectionString = Form1.strcon;

            cmd.CommandText = "delete from vidlic where FIO = '" + textBox1.Text + "'";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();

            tablica();

            }

 

        private void button4_Click(object sender, EventArgs e)

        {

 

            conn.ConnectionString = Form1.strcon;

 

 

 

            cmd.CommandText = "select * from vidlic";

 

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

 

            cmd.ExecuteReader();

 

 

            conn.Close();

 

            tablica();

        }

    }

}namespace Kursovik

{

    public partial class Form4 : Form

    {  

   SqlConnection conn = new SqlConnection();

        SqlCommand cmd = new SqlCommand();

        SqlDataReader rdr;

        public void tablica()

        {

            conn.ConnectionString = Form1.strcon;

            SqlDataAdapter da = new SqlDataAdapter("select * from neodok", conn);

            DataTable dt = new DataTable();

 

            da.Fill(dt);

            dataGridView1.DataSource = dt.DefaultView;

            dataGridView1.Columns[0].HeaderText = "ФИО";

            dataGridView1.Columns[1].HeaderText = "Мед. Заключение";

            dataGridView1.Columns[2].HeaderText = "Фотографии";

            dataGridView1.Columns[3].HeaderText = "Дата сдачи";

        }

        public Form4()

        {

            InitializeComponent();

        }

 

        private void Form4_Load(object sender, EventArgs e)

        {

 

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

 

            cmd.CommandText = "insert into neodok (FIO,medzak,foto,datasdachi) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox4.Text + "','" + textBox3.Text + "')";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();

            tablica();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

            cmd.CommandText = "select * from neodok where FIO= '" + textBox1.Text + "'";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

            rdr = cmd.ExecuteReader();

            rdr.Read();

            textBox2.Text = rdr.GetString(1);

            textBox4.Text = rdr.GetString(2);

            textBox3.Text = rdr.GetDateTime(3).ToLongDateString();

 

            conn.Close();

 

            tablica();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

 

            cmd.CommandText = "select * from neodok where FIO='" + textBox1.Text+"'";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

 

            rdr = cmd.ExecuteReader();

 

 

            if (rdr.Read())

            {

 

                conn.Close();

 

                cmd.CommandText = "delete from neodok where FIO = '" + textBox1.Text+"'";

                cmd.CommandType = CommandType.Text;

                cmd.Connection = conn;

                conn.Open();

                cmd.ExecuteNonQuery();

                conn.Close();

                tablica();

            }

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

 

            conn.ConnectionString = Form1.strcon;

 

 

 

            cmd.CommandText = "select * from neodok";

 

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

 

            cmd.ExecuteReader();

 

 

            conn.Close();

 

            tablica();

        }

    }

}         }

namespace Kursovik

{

    public partial class Form5 : Form

    {  

SqlConnection conn = new SqlConnection();

        SqlCommand cmd = new SqlCommand();

        SqlDataReader rdr;

        public void tablica()

        {

            conn.ConnectionString = Form1.strcon;

            SqlDataAdapter da = new SqlDataAdapter("select * from prayslist", conn);

            DataTable dt = new DataTable();

 

            da.Fill(dt);

            dataGridView1.DataSource = dt.DefaultView;

            dataGridView1.Columns[0].HeaderText = "Орудие";

            dataGridView1.Columns[1].HeaderText = "Характеристика";

            dataGridView1.Columns[2].HeaderText = "Цена";

        }

        public Form5()

        {

            InitializeComponent();

        }

 

        private void Form5_Load(object sender, EventArgs e)

        {

 

        }

 

        private void label3_Click(object sender, EventArgs e)

        {

 

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

 

            cmd.CommandText = "insert into prayslist (oru,xar,cena) values('" + textBox1.Text + "','" + textBox2.Text + "'," + textBox3.Text + ")";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();

            tablica();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

         

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            conn.ConnectionString = Form1.strcon;

 

            cmd.CommandText = "select * from prayslist where oru= '" + textBox1.Text + "'";

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

            conn.Open();

 

            rdr = cmd.ExecuteReader();

 

 

            if (rdr.Read())

            {

 

                conn.Close();

                cmd.CommandText = "delete from prayslist where oru= '" + textBox1.Text + "'";

                cmd.CommandType = CommandType.Text;

                cmd.Connection = conn;

                conn.Open();

                cmd.ExecuteNonQuery();

                conn.Close();

                tablica();

            }

            else MessageBox.Show("Запись с таким кодом не существует");

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

 

            conn.ConnectionString = Form1.strcon;

 

 

 

            cmd.CommandText = "select * from prayslist";

 

            cmd.CommandType = CommandType.Text;

            cmd.Connection = conn;

 

 

            conn.Open();

 

 

 

            cmd.ExecuteReader();

 

 

            conn.Close();

 

            tablica();

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

            string k = "";

            string val;

            string sAppProgID = "Excel.Application";

            // Получаем ссылку на интерфейс IDispatch

            Type tExcelObj = Type.GetTypeFromProgID(sAppProgID);

            // Запускаем Excel

            object oExcel = Activator.CreateInstance(tExcelObj);

            object oWorkbooks = oExcel.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, oExcel, null);

            //Создаем новую книгу

            object[] args = new object[2];

            args[0] = "d:\\1\\1.xls";

            args[1] = true;

            object oWorkbook = oWorkbooks.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, oWorkbooks, args);

            object oWorksheets = oWorkbook.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, null, oWorkbook, null);

 

            //Задаем порядковый номер страницы - 1

            object[] args1 = new object[1];

            args1[0] = 1;

            // Получаем ссылку на эту страницу

            object oWorksheet = oWorksheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, oWorksheets, args1);

            object oRange = oWorksheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, oWorksheet, new object[] { "A1" });

 

            int i = 0;

            for (i = 0; i < dataGridView1.RowCount - 1; i++)