在数据库中我有三个表 -
patient(patientID,fName,lName)
illness(diseaseID,diseaseName)
patientDisease(patientID, diseaseID, dateChecked)
patientID
和diseaseID
是索引。
所以在c#中,我有三个文本框fNameTxt
和lNameTXT
,diseaseTxt
。我想将这个名字存储在患者表中,疾病名称存储在疾病表中。此外,我还必须在patientID
表中记录diseaseID
和patientDisease
。对于患者表,我使用以下代码。我知道,我可以使用
SET @variable = LAST_INSERT_ID()
获取id,但意识到c#(visual studio)无法识别它。基本上,我无法做出总体陈述。有人可以帮我解决这个问题。
string connStr = @"server=localhost; DATABASE=mario;User ID=root;Password=;";
MySqlConnection conn1 = new MySqlConnection();
conn1.ConnectionString = connStr;
MySqlCommand cmd = conn1.CreateCommand();
cmd.CommandText = "INSERT INTO patient(patientID,fName, lName)"
+ "Values("NULL",'" + fNameTxt.Text + "','" + lNameTxt.Text + "');";
conn1.Open();
cmd.ExecuteNonQuery();
我在这里搜索了其他一些问题,但它们几乎是建议使用LAST_INSERT_ID()
而不是如何使用它。
答案 0 :(得分:0)
您可以使用它来获取最后插入的ID:
"SELECT * FROMtable(column) WHERE id = last_insert_id();
如果要插入最后一个ID,请使用此选项:
"INSERT INTO table(column) VALUES (LAST_INSERT_ID())";
希望这可能有用。
答案 1 :(得分:0)
如果使用存储过程
会好得多 INSERT INTO patient (patientID,patientID,lName)
VALUES("NULL",'" + fNameTxt.Text + "','" + lNameTxt.Text + "');
SET @last_id_in_patient = LAST_INSERT_ID();
INSERT INTO patientDisease (patientID,diseaseID,dateChecked)
VALUES( @last_id_in_patient ,NULL,'text'); # use ID in second table";
现在您可以更新特定PatientId的PatientDisease
表。