[英]How to use LAST_INSERT_ID() in c# windows form?
在数据库中,我有三个表-
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()
而不是如何使用它有关。
您可以使用它来获取最后插入的ID:
"SELECT * FROMtable(column) WHERE id = last_insert_id();
如果要插入最后一个ID,请使用以下代码:
"INSERT INTO table(column) VALUES (LAST_INSERT_ID())";
希望这可能有用。
如果使用存储过程会更好
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
表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.