gpt4 book ai didi

c# - ASP.NET MySQL 未定义参数

转载 作者:行者123 更新时间:2023-11-29 05:13:06 25 4
gpt4 key购买 nike

美好的一天!

我这里有一段代码可以插入,但从不更新。我得到的错误是 Parameter '@id_number' must be defined

我的代码:

string query = "INSERT INTO pupil (`fname`, `lname`, `mi`) VALUES (@fn, @ln, @mi)";
MySqlCommand com = new MySqlCommand(query, connection);

com.Parameters.AddWithValue("@fn", txtAddFName.Text);
com.Parameters.AddWithValue("@ln", txtAddLName.Text);
com.Parameters.AddWithValue("@mi", txtAddMI.Text);
com.ExecuteNonQuery();

//create ID number
long lastID = com.LastInsertedId;
int length = 4;
string currentYear = DateTime.Now.Year.ToString("yy");
string result = lastID.ToString().PadLeft(length, '0');
string id_number = currentYear + "-" + result ;
string updateIDNumber = "UPDATE pupil SET id_number=@id_number WHERE pupil_id=@pupil_id";
MySqlCommand IDcom = new MySqlCommand(updateIDNumber, connection);

com.Parameters.AddWithValue("@id_number", id_number);
com.Parameters.AddWithValue("@pupil_id", lastID);
IDcom.ExecuteNonQuery();

Insert 代码有效,但 Update 无效。我想要做的是获取最后插入的 ID 并将其字段 id_number 更新为当前年份的最后 2 位数字 + 最后插入的带有 4 个前导 0 的 ID。例如,如果最后插入的 ID 为 1,则 lastID 变量的值将为 16-0001

顺便说一句,架构是这样的:

pupil_id INT(11) AUTO_INCREMENT
fname VARCHAR(50)
lname VARCHAR(50)
mi VARCHAR(50)
id_number VARCHAR(255)

如有任何帮助,我们将不胜感激。

最佳答案

您使用了错误的命令实例:

com.Parameters.AddWithValue("@id_number", id_number);
com.Parameters.AddWithValue("@pupil_id", lastID);

代替 com 只需使用 IDcom

IDcom.Parameters.AddWithValue("@id_number", id_number);
IDcom.Parameters.AddWithValue("@pupil_id", lastID);

关于c# - ASP.NET MySQL 未定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36818887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com