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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2010, 18:11   #1
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию приложение на C# и БД SQL Server 2008

Добрый вечер, решила начать изучать новые для себя технологии. Решила написать небольшое приложение для того чтобы систематизировать инфу о книгах на моем компе. Возник такой вопрос:
дана форма на ней есть комбик в нем хранится информация о категриях (на их основе потом будут выбираться книги). Информация берется из таблицы. Дак вот также на форме есть кнопки удалить, добавить, изменить. Отвечают за удаление/изменение/добавление данных в таблицу ну и обновление комбика. Вот как я это делаю:
1. в самом начале объявлены глобальные переменные:
Код:
        public XmlDocument xmlDoc;
        public SqlConnection myConnect;
        public SqlDataReader myReader;
2. процедура подключения к бд
Код:
        public bool connect()   //метод подключения к бд()
        {
//=============================================================================================================
//          описание данных метода
//=============================================================================================================
            String name_server; //имя сервера получаемое из xml
            String name_db; //имя бд получаемое из xml 
//=============================================================================================================
//          получение параметров из xml-файла
//=============================================================================================================
            try
            {
                xmlDoc = new XmlDocument();
                xmlDoc.Load("D:/My work/C#/my_lib/my_lib/bin/Debug/config.xml");
                name_server = xmlDoc.GetElementsByTagName("server")[0].InnerText;
                name_db = xmlDoc.GetElementsByTagName("database")[0].InnerText;

//=============================================================================================================
//          формирование строки подключения и подключения
//=============================================================================================================
                myConnect = new SqlConnection("Server=" + name_server + "; database=" + name_db + "; Integrated Security=True");
                myConnect.Open();
            }
            catch (Exception ex)
            {   
                MessageBox.Show("Ошибка: " + ex.Message);
                return false;
            }
            return true;
        }
3. добавление данных в комбик, планирую эту функцию применять для того чтобы обновлять значения в комбике
Код:
        public void insert_combobox()   //заполнение комбика
        {
            comboBoxKat.Text="";
            comboBoxKat.Items.Clear();
            myReader = null;  //сюда считываются данные 
            SqlCommand my_SQL = new SqlCommand("select name_kat from t_kat order by name_kat", myConnect);
            myReader = my_SQL.ExecuteReader();
            

//=============================================================================================================
//         запись полученных данных в комбобокс 
//=============================================================================================================
            while (myReader.Read())
            {
                comboBoxKat.Items.Add(myReader["name_kat"].ToString());
                comboBoxKat.AutoCompleteCustomSource.Add(myReader["name_kat"].ToString());  //для автозаполнения
            }
        }
4. начала делать удаление из комбика и из таблицы запись значение которой совпадает с текущим в комбике
Код:
        private void buttonKatDel_Click(object sender, EventArgs e) //удаление определенной категории
        {
            try
            {
                SqlParameter myParam = new SqlParameter("@ParamKat", SqlDbType.VarChar, 100);
                myParam.Value = comboBoxKat.Text;
                myReader.Close();
                SqlCommand my_SQL = new SqlCommand("delete from t_kat where name_kat=@ParamKat", myConnect);
                my_SQL.Parameters.Add(myParam);
                my_SQL.ExecuteNonQuery();
                insert_combobox();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message);
            }

        }
Ну а теперь сам вопрос, так как только начала вкуривать во все это, хотела бы узнать как проще можно это сделать, правильно ли что перед началом удаления закрываю datareader?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу книгу по MS SQL Server 2008 Moranz SQL, базы данных 5 28.05.2010 14:32
sql server 2008 Neymexa Помощь студентам 1 25.03.2010 13:13
Запустить БД на старом компе. (C# + SQL Server 2008) cherw9!40k SQL, базы данных 0 19.01.2010 18:07
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) cherw9!40k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 14.01.2010 20:51
c# и sql server 2008 BattleMage SQL, базы данных 3 14.09.2009 20:28