影響を受ける最後の行の ID を取得する際に問題が発生しています。0 が返されます。これは、フォーマットの挿入時にエラーが発生したことを意味します。ストアド プロシージャを実行し、値を手動で追加したところ、正しい ID が返されました。しかし、コードでそれを実行しようとすると、0または-1が返され続けます...昨夜、数時間後にこれを試しましたが、それが私に与えた値とすでに混乱しています.
C#:
conn.Open();
cmd.Parameters.AddWithValue("@fileName", fileName);
cmd.Parameters.AddWithValue("@filePrivacy", filePrivacy);
cmd.Parameters.AddWithValue("@filePassword", filePassword);
cmd.Parameters.AddWithValue("@fileDescription", fileDesc);
cmd.Parameters.AddWithValue("@fileOwner", fileOwner);
cmd.Parameters.AddWithValue("@fileDate", DateTime.Now);
cmd.Parameters.AddWithValue("@fileExpire", DateTime.Now.AddMinutes(fileExpire));
cmd.Parameters.AddWithValue("@fileCodeText", fileType);
var fileID = cmd.Parameters.Add("@fileID", SqlDbType.Int);
fileID.Direction = ParameterDirection.Output;
int returnfileID = (int)cmd.ExecuteScalar();
return returnfileID;
ストアド プロシージャ:
CREATE PROCEDURE [dbo].[Upload]
@fileName nvarchar(20),
@filePrivacy int,
@filePassword nvarchar(50),
@fileDescription nvarchar(200),
@fileOwner nvarchar(14),
@fileDate smalldatetime,
@fileExpire smalldatetime,
@fileCodeText int,
@fileID int out
AS
INSERT INTO Files ([FileName], FilePrivacy, FilePassword, FileDescription, FileOwner, FileDate, FileExpire, FileCodeText)
VALUES (@fileName, @filePrivacy, @filePassword, @fileDescription, @fileOwner, @fileDate, @fileExpire, @fileCodeText)
SET @fileID = SCOPE_IDENTITY()
RETURN @fileID
SQL テーブル:
CREATE TABLE [dbo].[Files] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[FileName] NVARCHAR (20) NOT NULL,
[FilePrivacy] INT NOT NULL,
[FilePassword] NVARCHAR (50) NULL,
[FileDescription] NVARCHAR (200) NULL,
[FileOwner] NVARCHAR (14) NOT NULL,
[FileDate] SMALLDATETIME NOT NULL,
[FileExpire] SMALLDATETIME NOT NULL,
[FileCodeText] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);