Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2013, 12:38   #1
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию Выполняется только click

Доброго дня!
У меня маленький проект с 2-мя классами. Добавляет и удаляет данные построчно из бд. Можно подкорректировать некоторые записи и поиск. Только вот не могу использовать несколько событий. Например, загружаю приложение, выбираю строку и удаляю. Все отрабатывает. Но, допустим, добавить или отредактировать я уже не могу. Только если по-новому закрыть и открыть приложение. Получается, что работает только 1 какая -либо функция. Может, кто глянет и посоветует, как поправить. Спс)
Вложения
Тип файла: rar 14.03.2013.rar (65.9 Кб, 7 просмотров)
katerina_lili вне форума Ответить с цитированием
Старый 19.03.2013, 09:44   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

VS 2012 не у всех стоит. а 10я студия не хочет открывать проект.
wm_leviathan вне форума Ответить с цитированием
Старый 19.03.2013, 14:44   #3
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию спасиб, можно и в коде, его не много

Код:
class Connection
    {
        SqlConnection con = new SqlConnection("DATA Source=(local); Initial Catalog=Reestr-DSP;Integrated Security=True");
        public ArrayList User()
        {
            ArrayList user = new ArrayList();
            try
            {
                con.Close();
                SqlCommand com = new SqlCommand("SELECT [ID], [Code_Org] AS 'Код организации', [Post_r] AS 'Должность', [Ost_r] AS 'Наименование оргага', [Pers_r] AS 'ФИО',[Post_b] AS 'Пасада', [Ost_b] AS 'Наiменаванне органа', [Pers_b] AS 'ПII', [Dat_N] AS 'Дата назначения', [Dat_U]AS 'Дата окончания службы' FROM [Reestr-DSP].[dbo].[Podpisi]", con);
                con.Open();
                SqlDataReader dr = com.ExecuteReader();
                if (dr.HasRows)
                    foreach (DbDataRecord result in dr)
                        user.Add(result);
                con.Close();
                return user;
            }
            catch (SqlException e)
            {
                MessageBox.Show("Ошибка" + e.Message);
                return user;
            }

        }

        // Метод удаления 
        internal void Delete_in_Select(string p)
        {
            try
            {

                string qwr = String.Format("Delete FROM  [Reestr-DSP].[dbo].[Podpisi]  where [ID] = '{0}'", p);
                SqlCommand cmd = new SqlCommand(qwr, con);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (SqlException ds)
            {
                MessageBox.Show("Ошибка!" + ds.Message);
            }
        }


        internal void Insert_new(string p1, string p2, string p3, string p4, string p5, string p6, string p7, DateTime dateTime1, string dateTime2/*DateTime dateTime2*/)
        {
            try
            {
                con.Close();
                string qwr = String.Format("Insert into [Reestr-DSP].[dbo].[Podpisi]  ([Code_Org], [Post_r], [Ost_r], [Pers_r], [Post_b], [Ost_b], [Pers_b], [Dat_N], [Dat_U]) Values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')", p1, p2, p3, p4, p5, p6, p7, dateTime1, dateTime2.ToString());

                SqlCommand cmd = new SqlCommand(qwr, con);
                con.Open();
                cmd.ExecuteNonQuery();    
            }

            catch (SqlException)
            {
                MessageBox.Show("Внимание: В поле <Код организации> можно вводить только цифры");
            }
        }

        internal void Dobavlen(Func<string> func)
        {
            try
            {
                
                string qwr = String.Format("SELECT [Post_r],[Ost_r], [Pers_r], [Post_b], [Ost_b], [Pers_b], [Dat_N], [Dat_U], [Code_Org],  WHERE [Post_r]= textBox1.Text,[Ost_r]= textBox2.Text, [Pers_r]= textBox3.Text, [Post_b]= textBox4.Text, [Ost_b]= textBox5.Text, [Pers_b] = textBox6.Text, [Dat_N] = DateTime dateTime1,  [Dat_U] = DateTime dateTime2, [Code_Org] = textBox8.Text FROM [Reestr-DSP].[dbo].[Podpisi]");
                con.Close();
                SqlCommand cmd = new SqlCommand(qwr, con);
                con.Open();
                cmd.ExecuteNonQuery();


            }
            catch (SqlException se)
            {
                MessageBox.Show("Error   или может она?" + se.Message);
            }

        }  

        internal void Update(string id, string p)
        {
                con.Close();
                string qwer = String.Format("Update [Reestr-DSP].[dbo].[Podpisi] SET [Dat_U]=('{0}') Where [ID]='{1}'", p, id);
                SqlCommand cmd = new SqlCommand(qwer, con);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
        }
    }
}
katerina_lili вне форума Ответить с цитированием
Старый 19.03.2013, 14:44   #4
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

// второй класс

Код:
  public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        string id;
        // Добавляем столбец в таблицу
        Connection con = new Connection();

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                dataGridView1.DataSource = con.User();
                // dataGridView1.Columns["ID"].Visible = false;  // делаем невидимым столбец с ID          
            }
            catch (Exception c)
            {
                MessageBox.Show(c.Message);
            }
            DataGridViewCheckBoxColumn cb = new DataGridViewCheckBoxColumn();
            dataGridView1.Columns.Add(cb);
            

            cb.HeaderText = "Удалить";           

           }

        // Создаём кнопку УДАЛЕНИЯ строки

        private void button1_UDALENIE(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (dataGridView1[10, i].FormattedValue.ToString() == "True")
                   
                {
                    con.Delete_in_Select(dataGridView1[0, i].Value.ToString());
                    dataGridView1.DataSource = con.User();
                
                }
               
            }
           
        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }

        //Создаём кнопку добавления строки

        private void Dobavit_button(object sender, EventArgs e)
        {

            con.Insert_new(textBox8.Text, textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, dateTimePicker1.Value, "01.01.2050");
            dataGridView1.DataSource = con.User();            
         }

        // Создаём кнопку ПОИСК
        private void button2_Poisk(object sender, EventArgs e)
        {
           
            string search = textBox7.Text.Trim();          
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    //if (dataGridView1[j, i].Value.ToString() == textBox7.Text)
                    if (dataGridView1[2, i].FormattedValue.ToString().Contains(textBox7.Text.Trim()))
                    {
                        dataGridView1[2, i].Style.BackColor = Color.White;
                        dataGridView1[2, i].Style.BackColor = Color.Red;
                    }
                  }                                                                                                                                                                                                           
            }
            
        }
       
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            id = " ";
            textBox9.Text = " ";
            string dataprin = " "; 
            try
            {
                id = dataGridView1.CurrentRow.Cells["ID"].Value.ToString();
                dataprin = dataGridView1.CurrentRow.Cells["Дата окончания службы"].Value.ToString();
                textBox9.Text = dataprin.Substring(0, dataprin.IndexOf(' '));
            }
           catch 
            { }
            //   string dataprin = dataGridView1.CurrentRow.Cells[9].Value.ToString();
            //textBox9.Text = dataprin.Substring(0, dataprin.IndexOf(' '));
        }
        private void button4_Click(object sender, EventArgs e)
        {
            con.Update(id, textBox9.Text);
            dataGridView1.DataSource = con.User();
        }
    }
}
katerina_lili вне форума Ответить с цитированием
Старый 20.03.2013, 14:16   #5
Object_File
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

Ваш код закрывает потом открывает и снова закрывает соединение:
Код:
 try
            {
                con.Close();
                SqlCommand com = new SqlCommand("SELECT [ID], [Code_Org] AS 'Код организации', [Post_r] AS 'Должность', [Ost_r] AS 'Наименование оргага', [Pers_r] AS 'ФИО',[Post_b] AS 'Пасада', [Ost_b] AS 'Наiменаванне органа', [Pers_b] AS 'ПII', [Dat_N] AS 'Дата назначения', [Dat_U]AS 'Дата окончания службы' FROM [Reestr-DSP].[dbo].[Podpisi]", con);
                con.Open();
                SqlDataReader dr = com.ExecuteReader();
                if (dr.HasRows)
                    foreach (DbDataRecord result in dr)
                        user.Add(result);
                con.Close();
                return user;
            }
не пробовали делать по такой схеме?

Код HTML:
 try
            {
                connec.Open();
                SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE", connec);
                cmd.ExecuteNonQuery();
                  ........
                  ........
                  ........

            }
            catch (Exception ex)
            {
                  ...
            }
            finally
            {
                connec.Close();
            }
Object_File вне форума Ответить с цитированием
Старый 20.03.2013, 17:14   #6
katerina_lili
Пользователь
 
Аватар для katerina_lili
 
Регистрация: 17.10.2012
Сообщений: 17
По умолчанию

К сожалению, проблема не в этом(
katerina_lili вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему код выполняется правильно только один раз? Questru Microsoft Office Excel 8 25.01.2013 09:50
написал прогу, выполняется только половина Музыкант Общие вопросы C/C++ 6 09.10.2012 13:25
Комментарии. Только при пин-коде. Почему работает только 1 пи код? Bushel PHP 1 23.10.2010 18:21
Скрипт выполняется только один раз MAKSA JavaScript, Ajax 6 12.02.2010 13:48
начал учить только-только - нужна ваша помошь vanDJ Помощь студентам 20 18.12.2007 21:53