Я хочу получить весь выходной первичный ключ из этой команды вставки, используя С# ADO.Net.
Я запускаю это в SQL Server 2012 Studio и вижу таблицу результатов со всеми значениями, так можно ли получить эту таблицу из С#?
INSERT INTO dbo.Suspension
(pallet_position, processing_pallet_pkey, datetime_created, datetime_updated,
created_by, updated_by)
OUTPUT INSERTED.pkey VALUES
(1, 2, '20141013 16:27:25.000', '20141013 16:27:25.000', 2, 2),
(2, 2, '20141013 16:27:25.000', '20141013 16:27:25.000', 2, 2),
(3, 2, '20141013 16:27:25.000', '20141013 16:27:25.000', 2, 2),
(4, 2, '20141013 16:27:25.000', '20141013 16:27:25.000', 2, 2);
Что я пробовал в С# ADO.NET. Но DataTable не получил никакого значения из insertedOutput
.
SqlCommand cmd = new SqlCommand(insertQuery, this.conn);
var insertedOutput = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(insertedOutput); // something wrong here
Заметил, что я скопировал код SQL из отладчика. Это работает нормально. (не уверен, откуда взялось «это», но это не вызвало никаких проблем)
В отладчике есть результаты cmd.ExecuteReader() во вставленном выводе, но я не могу скопировать эти результаты из dt (переменная DataTable).
// this cause an error.
‹=== что говорит ошибка? - person Marc Gravell   schedule 13.10.2014this.created_by
и т. д.) - можете ли вы подтвердить, что там происходит? - person Marc Gravell   schedule 13.10.2014