Я должен заполнить SQL таблицу из DataGridView. Проблема заключается в том, что у меня есть куча таблиц с различным количеством столбцов, и я не могу написать простой скрипт, чтобы заполнить его «строка за строкой», поэтому я решил собрать данные sh с помощью DataTable, но я получаю ошибка
Параметр типа таблицы "@data" должен иметь правильное имя типа
Мой код:
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 [DB].[dbo].[" + comboBox1.SelectedItem.ToString()+ "]; INSERT INTO [DB].[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();
}
}
comboBox1.SelectedItem.ToString()
возвращает таблицу имя.
Первая часть запроса - удаление таблицы, так как в противном случае она будет дублировать неизмененную информацию, после чего я отправляю ее обратно, поскольку dataGridView имеет все данные