繁体   English   中英

如何在C#Windows窗体中使用LAST_INSERT_ID()?

[英]How to use LAST_INSERT_ID() in c# windows form?

在数据库中,我有三个表-

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

patientIDdiseaseID是指数。 因此,在C#中我有三个文本框fNameTxtlNameTXTdiseaseTxt 。我想的名字存储在表疾病患者平台和疾病名称。 此外,我必须记录patientIDdiseaseIDpatientDisease表也是如此。 对于患者表,我使用了以下代码。 我知道,我可以使用

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM