Я новичок в ado.net и в настоящее время работаю над вставкой записей с данными в таблицы базы данных.
У меня есть 1 файл Excel, содержащий некоторые данные, и из этого файла Excel я создаю набор данных, который содержит множество таблиц данных.
В этом наборе данных у меня есть 2 таблицы данных в виде этого:
Datatable 0 с записями: Категория
ParentCategory Description
Electronics jhdkhsd
Sports kjshfhs
Дата 1 с записями: Подкатегория
Subcategory ParentCategory Description
Mobile Electronics weprwp
Tv Electronics sdflskd
Balls Sports kjshdfkjh
Shoes Sports uytuyt
Теперь мои таблицы базы данных выглядят так:
Category:Id,Name,parentid
Итак, в основном я пытаюсь вставить все эти данные datatables, которые являются категориями datatable и SubCategory datatable, в мою таблицу базы данных, которая является категорией, но когда я пытаюсь вставить получение ошибки:
Ошибка: параметризованный запрос '(@Id int output, @ ParentCategory nvarchar (50)) вставить в категорию' ожидает параметр '@ParentCategory', который не был предоставлен.
Это мой код на данный момент:
var dsFinal = new DataSet();
//Some code to read Excel sheets and data from Excel and create datatables and records with it.
//code to insert records
using (SqlConnection connection = new SqlConnection(""))
{
SqlDataAdapter adapter = new SqlDataAdapter();
var insertCommand = new SqlCommand("insert into Category (Name) values (@ParentCategory) SET @Id = SCOPE_IDENTITY()", connection);
var parameter = insertCommand.Parameters.Add("@Id", SqlDbType.Int, 0, "Id");
insertCommand.Parameters.Add("@ParentCategory", SqlDbType.NVarChar, 50, "Name");
parameter.Direction = ParameterDirection.Output;
insertCommand.UpdatedRowSource = UpdateRowSource.OutputParameters;
adapter.InsertCommand = insertCommand;
adapter.Update(dsFinal .Tables[0]);
}
Здесь у меня есть свойство состояния rowstate строк с данными для всех категорий, которое нужно добавить, поэтому я напрямую пытаюсь вставить все записи категории.
Должен ли я переходить к отдельным записям и вставлять их? Поскольку у меня огромное количество, например, тысячи категорий вместе с их подкатегориями, и это замедлит мою систему.
Add("@Id"
иAdd("@ParentCategory"
) - person Ivan Stoev   schedule 22.06.2016var parameter = insertCommand.Parameters.Add("@Id", SqlDbType.Int, 0, "Id");
после строкиinsertCommand.Parameters.Add("@ParentCategory", SqlDbType.NVarChar, 50, "Name");
- person Ivan Stoev   schedule 22.06.2016