如何在c#windows窗体中使用LAST_INSERT_ID()?

时间:2013-12-04 07:26:50

标签: c# mysql sql

在数据库中我有三个表 -

patient(patientID,fName,lName) 
illness(diseaseID,diseaseName)
patientDisease(patientID, diseaseID, dateChecked)

patientIDdiseaseID是索引。 所以在c#中,我有三个文本框fNameTxtlNameTXTdiseaseTxt。我想将这个名字存储在患者表中,疾病名称存储在疾病表中。此外,我还必须在patientID表中记录diseaseIDpatientDisease。对于患者表,我使用以下代码。我知道,我可以使用

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()而不是如何使用它。

2 个答案:

答案 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表。