cxl_ 2013-07-28 07:51 采纳率: 0%
浏览 785

【关于.net存储过程】

CREATE PROCEDURE [dbo].[usp_insertRoomType]

@TypeName nvarchar(50), ----类型名称

@TypePrice decimal(18,2) ----该类型的房间的价格

/*

Function:插入一个房间类型

Date:2009-8-28

*/

AS

IF NOT EXISTS (SELECT * FROM RoomType WHERE TypeName = @TypeName)

BEGIN

INSERT INTO RoomType(TypeName,TypePrice)

VALUES(@TypeName,@TypePrice);

END

SELECT @@IDENTITY

上面这个是在Sql Server中的存储过程

我在visio studio中做项目,调用这个存储过程进行插入,
--我怎样在不修改存储过程的情况下,在插入成功后得到@@IDENTITY 得到它的编号呢?
--我知道修改存储过程设置返回值,就可以得到
--但我不想这样做,想在visio studi写代码时,当显示插入成功后得到这个值

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 14:09
    关注

    如果你想在 Visual Studio 中调用存储过程并获取返回值,你可以使用 SqlCommand 的 ExecuteScalar 方法来执行存储过程,然后将返回值转换为相应的数据类型。


    例如,你可以使用以下代码来调用上面的存储过程并获取返回值:

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
    
        using (SqlCommand command = new SqlCommand("usp_insertRoomType", connection))
        {
            command.CommandType = CommandType.StoredProcedure;
    
            // 添加存储过程的参数
            command.Parameters.AddWithValue("@TypeName", typeName);
            command.Parameters.AddWithValue("@TypePrice", typePrice);
    
            // 执行存储过程并获取返回值
            object returnValue = command.ExecuteScalar();
    
            // 将返回值转换为相应的数据类型
            int roomTypeId = Convert.ToInt32(returnValue);
        }
    }
    

    注意,你还需要将上面的代码放在 try-catch 块中,以便在发生异常时进行处理。

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?