我试图首先通过C#在我的SQL Compact Edition数据库中创建一个新行,然后我想用我的radiobuttons中的信息更新同一行。我有一个" 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();
}
}
字段(名字,中间名,姓氏)会更新,但性别列不会更新。我做错了什么?
答案 0 :(得分:0)
感谢我使用的@Soner:
int.TryParse(dr1["TempID"].ToString(), out Identity);
string IdentityS = Identity.ToString();
并将 DC.ID 替换为 IdentityS
现在它完美无缺。