Я пытаюсь получить SCOPE_IDENTITY для моего приложения vb.NET из хранимой процедуры, но я получаю исключение DBNull.
Это мой СП:
ALTER PROCEDURE [dbo].[sp_XYZ]
@ID INT,
@OtherID INT OUTPUT
AS
BEGIN
SELECT
@Name = name,
FROM dbo.PERSON
WHERE id = @ID
INSERT INTO [SERVERSOLMAR\TSW].TSWDATA.dbo.t_Employees
(
Name
)
VALUES
(
@Name
)
SET @OtherID = SCOPE_IDENTITY()
END
Мой код vb.NET:
Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("CON").ConnectionString)
Dim dataAdapter As New SqlDataAdapter("sp_XYZ", con)
Dim ARLI As Integer
Try
con.Open()
With dataAdapter.SelectCommand
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@ID", SqlDbType.VarChar).Value = id
Dim identity As New SqlParameter("@OtherID", SqlDbType.Int)
valorInteger.Direction = ParameterDirection.Output
.Parameters.Add(identity)
.ExecuteNonQuery()
ARLI = identity.Value
End With
End try
Оператор вставки работает нормально.
Проблема в том, что я получаю «Преобразование из типа« DBNull »в тип« Целое »недопустимо».
Я использую связанный сервер, может ли это быть проблемой?