Добрый вечер, решила начать изучать новые для себя технологии. Решила написать небольшое приложение для того чтобы систематизировать инфу о книгах на моем компе. Возник такой вопрос:
дана форма на ней есть комбик в нем хранится информация о категриях (на их основе потом будут выбираться книги). Информация берется из таблицы. Дак вот также на форме есть кнопки удалить, добавить, изменить. Отвечают за удаление/изменение/добавление данных в таблицу ну и обновление комбика. Вот как я это делаю:
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?