获取记录在数据库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,因为用户详细信息将在残疾属性

获取记录在数据库sqlserver和c#上保存之前的PK

的if语句之后保存

如果您想要在下一行输入的id,然后保存它,您可以通过制作一个技巧首先获得最后输入的id。例如,如果您有一个名为user的表,primary keyId,您可以通过此查询选择最后输入的id SELECT IDENT_CURRENT('user'),然后next idoutput的值+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();
        }