Как получить идентификатор строки в 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 ответ
2013-08-01 21:43