C#获得刚刚插入记录的自增ID

        看着别人为了获得新插入记录的自增ID而给表增加一个GUID的字段就揪心,自己能实现是好事(如果不能变更表呢),实现完到网络搜搜别人的解决方案不是更好。@@IDENTITY是我常用的解决方案(这是SQLServer数据库才有的),代码如下:

private static string AddRecordReturnNewID()
{
    string sql = @"insert into [dbo].[Test1122] values(@Name,@Age);
                    select @ID=@@IDENTITY;";
    SqlParameter[] para =
    {
        new SqlParameter("@Name", SqlDbType.NVarChar,20),
        new SqlParameter("@Age", SqlDbType.Int),
        new SqlParameter("@ID", SqlDbType.Int)
    };
    para[0].Value = "Nova";
    para[1].Value = 24;
    para[2].Direction = ParameterDirection.Output;
    DBHelper.ExecuteNonData(sql, para);
    return para[2].Value.ToString();
}
        其中表结构如下:

create table Test1122(
	ID int identity(1,1) primary key not null,
	Name nvarchar(20) not null,
	Age int not null)
        另外ParameterDirection是自带的枚举,不需要额外定义,用来指定查询内的有关 DataSet 的参数的类型。枚举定义如下:

public enum ParameterDirection
{
    /// <summary>
    /// 参数是输入参数
    /// </summary>
    Input = 1,
    /// <summary>
    /// 参数是输出参数
    /// </summary>
    Output = 2,
    /// <summary>
    /// 参数既能输入,也能输出
    /// </summary>
    InputOutput = 3,
    /// <summary>
    /// 参数表示诸如存储过程、内置函数或用户定义函数之类的操作的返回值
    /// </summary>
    ReturnValue = 6,
}
        此文比较简单,希望对不了解者有些帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值