Как получить идентификатор строки в ADO.NET DataAdapter.InsertCommand

Я использую ADO.NET с MySQL.

Чтобы вставить данные, я использую DataAdapter (MySqlDataAdapter):

MySqlCommand insertCommand = new MySqlCommand(@"INSERT INTO Investments (InvestmentType)
                                                            VALUES (@InvestmentType); SET @ID=@@IDENTITY;"
                                                         , (MySqlConnection)Connection);
insertCommand.Parameters.Add("@InvestmentType", MySqlDbType.VarChar, 255, "InvestmentType");
DbParameter parameter = insertCommand.Parameters.Add("@ID", MySqlDbType.UInt32, 0, "ID");
parameter.Direction = ParameterDirection.Output;
((MySqlDataAdapter)InvestmentsAdapter).InsertCommand = insertCommand;
((MySqlDataAdapter)EmptyInvestmentsAdapter).InsertCommand = insertCommand;

Я ожидал бы, что он заполняет строку "ID" столбца, поскольку параметр @ID должен быть параметром OUT, но он вызывает исключение с MySQL, имеющим проблемы, поскольку он оценивается как "SET NULL=@@IDENTITY;".

Есть идеи?

Это вдохновлено "Microsoft ADO.NET 4" Тима Кука, который, кажется, использует SQL Server, а я использую MySQL. Я не могу найти документацию по выходным параметрам адаптера MySQL.

1 ответ

Эта статья оказалась очень полезной для меня:

MSDN Учебник

С Уважением,

Питер

Другие вопросы по тегам