скажите пожалуйста как добавить Кнопку 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;
    }
}
→ Ссылка