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

时间:2016-11-08 14:22:30

标签: c# sql asp.net sql-server

美好的一天,

我正在创建一个用于保存用户详细信息的系统,我有属性(UserID(pk-Auto),姓名,姓氏,残疾(FK)..

我有3张桌子,

  • 用户(UserID(pk),姓名,姓氏,残疾(fk))
  • 残疾(DisabilityID(pk),残疾(是/否))
  • disabilitype (DisabilityTypeID(PK),disabilityID(fk),UserID(fk),disabilityName)

残疾有一个yes / now选项(id为1为1,no为no),如果用户点击yes,系统必须能够在disabilityType上保存数据并检索用户的PK是未知的,因为用户详细信息将保存在disability属性的if语句

之后

2 个答案:

答案 0 :(得分:0)

如果你想在保存它之前想要下一个输入行的id,你可以通过首先获取最后输入的id来获得它。例如,如果你有一个名为user的表和{{1您primary key可以选择此查询Id上次输入的id,然后SELECT IDENT_CURRENT('user')next idoutput

答案 1 :(得分:0)

您应该能够使用@@ 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();
        }