私はコードを持っています:
command.Parameters.Clear();
command.Parameters.Add(ownerUserIDParam);
command.Parameters.Add(buddyUserIDParam);
command.Parameters.Add(timestampParam);
command.Parameters.Add(new SqlParameter("@GiftID", giftID));
command.Parameters.Add(new SqlParameter("@GiftStatus", (byte)GiftStatusEnum.wait));
command.CommandText = "INSERT INTO SentGefts (OwnerUserID, BuddyUserID, CreateTS, GiftID, Status, AcceptRejectTS, ParentEntityType, ParentEntityID) VALUES (@OwnerUserID, @BuddyUserID, @TS, @GiftID, @GiftStatus, @TS, 0 ,0);";
command.CommandText += "SELECT @@IDENTITY;";
result.GiftInstanceID = long.Parse(command.ExecuteScalar().ToString());
そして、私は受け取ります:パラメーター化されたクエリ'(@OwnerUserID int、@BuddyUserID int、@ TS datetime、@ GiftID int、@ Gif'は、提供されなかったパラメーター'@GiftStatus'を予期します。
注:'(@OwnerUserID int、@BuddyUserID int、@ TS datetime、@ GiftID int、@ Gif'は切り捨てられ、正確に64シンボルです...そして、未完成のパラメーター名' Gif'で終了します(例外はこのパラメータについても)。
パラメータが表示されないのはなぜですか?
UPD:最後のパラメーター(@GiftStatus)を次のように追加する場合:command.Parameters.AddWithValue( "@ GiftStatus"、(byte)GiftStatusEnum.wait);
このようにして物事は機能し始めます。しかし、.Add(new SqlParamter());の何が問題になっているのか理解できません。