Как заполнить SQL таблицу при помощи DataTable

Мне нужно из таблицы DataGridView в форме заполнить SQL таблицу. Так, как у меня много разных таблиц с разным количеством столбцов и разными типами данных, заполнять каждую из них отдельной функцией было бы просто не рационально. По этому я решил отправлять их в нужную таблицу при помощи DataTable, но получил ошибку:

Параметр "@data" типа table должен иметь допустимое имя типа

Как я понял, для этого нужно создать свой тип CREATE TYPE typeName AS TABLE(столбцы с типами данных) и использовать процедуру SQL CREATE PROCEDDURE loadData @data typeName, но это будет означать отдельный тип и процедуру для каждой таблицы. Есть ли способ указывать их динамически или же другие пути решения?

C# код:

private void button1_Click(object sender, EventArgs e)
{
        SqlDataReader sqlReader = null;
        SqlConnection sqlConnection = new SqlConnection(connectionString);
        sqlConnection.Open();
        var dt = new DataTable();
        dt = (DataTable)dataGridView1.DataSource;
        try
        {
            using (SqlCommand command = new SqlCommand(@"DELETE FROM [kursova].[dbo].[" + comboBox1.SelectedItem.ToString()+ "]; INSERT INTO [kursova].[dbo].[" + comboBox1.SelectedItem.ToString()+ "] VALUES (@data)",sqlConnection))
            {
                command.Parameters.AddWithValue("@data", dt);
                command.ExecuteNonQuery();
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        finally
        {
            if (sqlReader != null)
                sqlReader.Close();
        }
}

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