私はここにコードを挿入しますが、決して更新しません。私が得る誤差は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 [email protected]_number WHERE [email protected]_id";
MySqlCommand IDcom = new MySqlCommand(updateIDNumber, connection);
com.Parameters.AddWithValue("@id_number", id_number);
com.Parameters.AddWithValue("@pupil_id", lastID);
IDcom.ExecuteNonQuery();
挿入コードは動作しますが、更新はできません。私がやりたかったのは、最後に挿入された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)
すべてのヘルプははるかに高く評価されるだろう。
私は – cableload
は、まだあなたに最高を与える:)方法の連中によって – FewFlyBy
、それは大丈夫です@cableloadそれは動作しますが、私が代わりにYY-0001を得たか、16から0001 – FewFlyBy