获取记录在数据库sqlserver和c#上保存之前的PK
本文关键字:保存 PK 记录 数据库 sqlserver 获取 | 更新日期: 2023-09-27 18:16:53
大家好,
我正在创建一个保存用户详细信息的系统,我有属性(UserID(pk-Auto),姓名,姓氏,残疾(FK)..
我有3张表,
- user (UserID(pk), Name,姓,残疾(fk))
- 残疾 (DisabilityID(pk),残疾(YES/NO))
- disabilitytype (DisabilityTypeID(PK), disabilityID(fk), UserID(fk), disabilityName)
残疾有一个yes/now选项(id为1表示是,2表示否),如果用户单击yes,系统必须能够保存disabilityType上的数据并检索未知用户的PK,因为用户详细信息将在残疾属性
如果您想要在下一行输入的id,然后保存它,您可以通过制作一个技巧首先获得最后输入的id。例如,如果您有一个名为user
的表,primary key
是Id
,您可以通过此查询选择最后输入的id
SELECT IDENT_CURRENT('user')
,然后next id
是output
的值+1
您应该能够使用@@Identity来获取由语句生成的id。因此,当您在User表中插入一个返回@@Identity的out参数时,然后使用该值相应地保存到disabilitype表中。
using (SqlCommand cmd = new SqlCommand("Insert Into User ... //Brevity
RETURN @@IDENTITY
", cn)) {
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter returnValue = new SqlParameter();
returnValue.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(returnValue);
cmd.ExecuteNonQuery();
}