Добавление записей в базу данных
Так как подключение к базе данных уже происходит при загрузке формы LocalDBExample, нам не нужно подключаться повторно. Перейдем на вкладку INSERT и выполним двойной щелчок по кнопке «Добавить». Visual Studio создаст метод, который будет обрабатывать нажатие этой кнопки.
Пропишем туда новую команду:
SqlCommand command = new SqlCommand("INSERT INTO [Products] (Name, Price)VALUES(@Name,@Price)", sqlConnection);
Теперь свяжем наши данные из базы с элементами TextBox:
Нужно учесть вариант, в котором пользователь оставит поля пустыми. Для этого на вкладку INSERT добавим еще один Label, в котором будет выводиться информация об ошибке. Присвоим его свойству Visible значение false.
Теперь в обработчик нажатия кнопки добавим условный оператор, который будет проверять, заполнены ли поля, и выводить сообщение в label в обратном случае:
if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrWhiteSpace(textBox1.Text) &&
!string.IsNullOrEmpty(textBox2.Text) && !string.IsNullOrWhiteSpace(textBox2.Text))
{
… НАШ КОД …
}
else
{
label7.Visible = true;
label7.Text = "Поля 'Имя' и 'Цена' должны быть заполнены!";
}
И перед выполнением выделенного кода, нужно проверить свойство visible у label7, и если оно равно true, то заменить на false;
if (label7.Visible) label7.Visible = false;
Для добавления в базу новых данных осталось только выполнить написанную команду:
command.ExecuteNonQuery();
Для того, чтобы можно было увидеть изменения на вкладке SELECT, не выходя из программы, добавим на вкладку SELECT еще одну кнопку, и назовем ее «Обновить»:
В ее обработчике нужно очистить вкладку SELECT, а затем снова загрузить туда данные из базы точно так же, как это было сделано в методе Form1_Load.
listBox1.Items.Clear();
if (sqlReader != null)
sqlReader.Close();
string connectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;" +
"AttachDbFilename=C:\\Users\\cifracom\\Documents\\" +
"Visual Studio 2017\\Projects\\LocalDBExample\\LocalDBExample\\" +
"ExampleData.mdf;Integrated Security=True";
try
{
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM [Products]", sqlConnection);
sqlReader = command.ExecuteReader();
while (sqlReader.Read())
{
listBox1.Items.Add(Convert.ToString(sqlReader["Id"]) + " " +
Convert.ToString(sqlReader["Name"]) + " " +
Convert.ToString(sqlReader["Price"])
);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(),ex.Source.ToString(), MessageBoxButtons.OK);
}
finally
{
if (sqlReader != null)
sqlReader.Close();
}
}
Важно не забыть, перед этим закрыть уже существующее подключение к базе данных:
if (sqlReader != null)
sqlReader.Close();
Запустим программу и перейдем на вкладку INSERT. В поле «Имя продукта» занесем апельсин, а в поле «Цена» напишем 40.
Нажмем кнопку добавить, перейдем на вкладку SELECT, и нажмем «Обновить».
Как мы видим, в таблицу продуктов добавился апельсин. В обозревателе серверов правой кнопкой нажмем на базу данных и выберем обновить. Затем откроем таблицу продуктов:
Видим, что добавился апельсин.