簡體   English   中英

通過C#獲取SQL中最后更新的行的標識

[英]Get the identity of the last updated row in SQL via C#

我試圖首先通過C#在我的SQL Compact Edition數據庫中創建一個新行,然后想用單選按鈕中的信息更新同一行。 我在數據庫中有一個“ ID”列,該列是自動增量的。

因此,我嘗試使用@@ Identity將其值分配給變量,並在更新查詢中將其調用,但它不起作用。 我試過MAX在ID列中找到最大值,這將是最新的行,但仍然無法正常工作。 這是我的代碼。

con.Open();
string sqlAdd = "Insert into MembersTable ([First Name],Surname,[Middle Name])
Values('"+txtFirstName.Text+"','"+txtSurname.Text+"','"+ txtMiddleName.Text+"')";
string IDIdentifier = "Select @@Identity AS TempID";
string sqlgenderM = "Update MembersTable set Gender='M' where ID='" + DC.ID + "'";
string sqlgenderF = "Update MembersTable set Gender='F' where ID='" + DC.ID + "'";

com = new SqlCeCommand(sqlAdd, con);
com.ExecuteNonQuery();

SqlCeCommand com1 = new SqlCeCommand(IDIdentifier, con);
SqlCeDataReader dr1 = com1.ExecuteReader();
if (dr1.Read())
    {
        DC.ID = dr1["TempID"].ToString();
    }
    {
        if (rbGenderMale.Checked == true)
      {
      SqlCeCommand gendercom = new SqlCeCommand(sqlgenderM, con);
      gendercom.ExecuteNonQuery();
      }

       else if (rbGenderFemale.Checked == true)
       {
       SqlCeCommand gendercom = new SqlCeCommand(sqlgenderF, con);
       gendercom.ExecuteNonQuery();
       }
      }

字段(名字,中間名,姓氏)會更新,但“性別”列不會更新。 我究竟做錯了什么?

感謝@Soner我使用了:

int.TryParse(dr1["TempID"].ToString(), out Identity); 
string IdentityS = Identity.ToString();

並將DC.ID替換為IdentityS

現在,它可以完美運行了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM