скажите пожалуйста как добавить Кнопку Insert на Win Form?
нужно добавить кнопку инсерт на windows form которая добавит информацию в бд но надо это делать без SQL запроса
Ответы (1 шт):
Автор решения: Bulson
→ Ссылка
public partial class FormMain : Form
{
private const string _conString = @"Data Source=(localdb)\MSSQLLocalDB;" +
"Initial Catalog=DatabaseOneTable;" +
"Integrated Security=True;";
private const string _selectString = "SELECT * FROM People";
private readonly DataSet _dataSet;
public FormMain()
{
InitializeComponent();
_dataSet = new DataSet();
this.Load += FormMain_Load;
}
private void FormMain_Load(object sender, EventArgs e)
{
try
{
using (var adp = new SqlDataAdapter(_selectString, _conString))
{
//читаем записи
var records = adp.Fill(_dataSet, "People");
Trace.WriteLine($"Прочитано {records} записей");
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
_buttonSave.Click += ButtonSave_Click;
}
private void ButtonSave_Click(object sender, EventArgs e)
{
//готовим новую строку с данными
var row = _dataSet.Tables["People"].NewRow();
row["FirstName"] = _textBoxFirstName.Text;
row["LastName"] = _textBoxLastName.Text;
row["Birthdate"] = _dateTimePicker.Value;
//добавляем новую строку
_dataSet.Tables["People"].Rows.Add(row);
try
{
using (var adp = new SqlDataAdapter(_selectString, _conString))
using (var cmb = new SqlCommandBuilder(adp))
{
//обновляем таблицу в БД
var records = adp.Update(_dataSet.Tables["People"]);
Trace.WriteLine($"Добавлено {records} записей");
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
_textBoxFirstName.Clear();
_textBoxFirstName.Focus();
_textBoxLastName.Clear();
_dateTimePicker.Value = DateTime.Today;
}
}
