MySQL で ADO.NET を使用しています。
データを挿入するには、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 パラメーターは OUT パラメーターである必要があるため、Rows "ID" 列が満たされると予想されますが、"SET NULL=@@IDENTITY;" と評価されるため、MySQL で例外が発生し、問題が発生します。
何か案は ?
これは、Tim Cook の「Microsoft ADO.NET 4」に触発されたもので、私が MySQL を使用しているときに SQL Server を使用しているようです。MySQL Adapter の Out パラメータに関するドキュメントが見つかりません。