Обновление базы данных через sql update c#

Я подключаю базу данных к winForms и вывожу через dataGridView, после чего когда изменил некоторые ячейки (мне нужно именно изменить, не добавить, и изменения могут быть не в одной строчке а в множестве сразу же), через dataset пытаюсь обновить базу данных, но она не обновляется. Я просто не знаю почему, код вроде правильный, про бывал уже по всякому. Вот код

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Windows.Forms.VisualStyles;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;

namespace Журнал_СШ
{
    public partial class Main : Form
    {
        DataSet dataSet;
        SqlDataAdapter adapter;
        string server = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Журнал;Integrated Security=True";
        string sql, table;

        public Main()
        {
            InitializeComponent();
        }


        // кнопка сохранения
        private void Save_Click(object sender, EventArgs e)
        {
          //  try
            {
                using (SqlConnection connection = new SqlConnection(server))
                {
                    using (SqlCommand command = connection.CreateCommand())
                    {
                        connection.Open();
                        for (int l = 0; l < dataGridView1.Rows.Count; l++)
                            for (int t = 0; t < dataGridView1.Columns.Count; t++)
                                dataSet.Tables["Class"].Rows[l][t] = dataGridView1.Rows[l].Cells[t].Value;
                        for (int l = 0; l < dataGridView1.Rows.Count; l++)
                            for (int t = 1; t < dataGridView1.Columns.Count; t++)
                            {
                                if (t + 3 < dataSet.Tables["Class"].Columns.Count)
                                {
                                    command.CommandText = "UPDATE [" + table + "] SET Дата" + t + " = @dannie WHERE id = @id";
                                    command.Parameters.Add("@dannie", SqlDbType.Int);
                                    command.Parameters["@dannie"].Value = dataSet.Tables["Class"].Rows[l][t + 2];
                                    command.Parameters.Add("@id", SqlDbType.Int);
                                    command.Parameters["@id"].Value = dataSet.Tables["Class"].Rows[l][0];
                                    adapter.UpdateCommand = command;
                                    adapter.Update(dataSet.Tables["Class"]);
                                }
                            }
                        connection.Close();
                    } 
                }
            }
         /*   catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }*/
        }

        private void Load_Click(object sender, EventArgs e)
        {
            try
            {
                table = textBox1.Text;
                sql = "SELECT * FROM [";
                dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                dataGridView1.AllowUserToAddRows = false;
                sql += table + "]";
                using (SqlConnection connection = new SqlConnection(server))
                {
                    connection.Open();
                    adapter = new SqlDataAdapter(sql, connection);

                    dataSet = new DataSet();
                    adapter.Fill(dataSet, "Class");
                    dataGridView1.DataSource = dataSet.Tables["Class"];

                    dataGridView1.Columns["id"].ReadOnly = true;
                    dataGridView1.Columns["id"].Visible = false;
                    dataGridView1.Columns["Группа"].ReadOnly = true;
                    dataGridView1.Columns["Группа"].Visible = false;
                    dataGridView1.Columns["Имя"].ReadOnly = true;
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}

Код таблицы:

[id]     INT        NOT NULL,
    [Группа] NCHAR (10) NOT NULL,
    [Имя]    NCHAR (10) NOT NULL,
    [Дата1]  INT        NULL,
    [Дата2]  INT        NULL,
    [Дата3]  INT        NULL,
    [Дата4]  INT        NULL,
    [Дата5]  INT        NULL,
    [Дата6]  INT        NULL,
    [Дата7]  INT        NULL,
    [Дата8]  INT        NULL

Ответы (1 шт):

Автор решения: askurakor23

Вы можете решить это на основе данного подключения, в котором заменяются данные с помощью insert:

string max_querry = "select TOP 1 user_id 
                     from users ORDER BY user_id DESC";
int max_id;
using (SqlConnection conn1 = new SqlConnection(ConnectionData.ConnectionString)) {
    conn1.Open();
    using (SqlCommand cmd1 = new SqlCommand(max_querry, conn1)) {
        object result = cmd1.ExecuteScalar();
        max_id = Convert.ToInt32(result);
    }
}
string add_querry = "insert into users VALUES (
                     @uID, @uL, @uP, @uPU, @uLL, @uB, @uS)";
using (SqlConnection conn = new SqlConnection(ConnectionData.ConnectionString)) {
    conn.Open();
    using (SqlCommand cmd = new SqlCommand(add_querry, conn)) {
        cmd.Parameters.AddWithValue("@uID", max_id+1);
        cmd.Parameters.AddWithValue("@uL", TB_Login.Text);
        cmd.Parameters.AddWithValue("@uP", TB_Password.Text);
        cmd.Parameters.AddWithValue("@uLL", DateTime.Now.Date);
        if (CB_need_upd.Checked) {
            cmd.Parameters.AddWithValue("@uPU", 1);
        }
        else {
            cmd.Parameters.AddWithValue("@uPU", 0);
        }
        if (CB_Administrator.Checked) {
            cmd.Parameters.AddWithValue("@uS", "Администратор");
        }
        else {
            cmd.Parameters.AddWithValue("@uS", "Пользователь");
        }
        if (CB_Blocked.Checked) {
            cmd.Parameters.AddWithValue("@uB", 1);
        }
        else {
            cmd.Parameters.AddWithValue("@uB", 0);
        }
        cmd.ExecuteNonQuery();
    }
}
→ Ссылка