私はあなたに問題があるかどうか質問したいと思います。私はインターフェイスとしてASP.NETを使用し、db4oはデータベースとして使用します。私は、このクラス構造を持っている:db4oのオブジェクト番号を増やす
- PRJ(クラス)(EQPがPRJの属性である)
- ... EQP(クラス)(EQPの属性は、これらの2つです:)
- 。 .EqpSpec(クラス)
- ..Job(属性)
- ... EQP(クラス)(EQPの属性は、これらの2つです:)
私のコードは以下の通りですが、EqpSpecのオブジェクトを格納した後になぜそれが増えたのか分かりません。
プログラムを閉じてからもう一度「a」オブジェクトを作成し、それを再び開くと、ドロップダウンリストから2つが得られます。 (私はドロップダウンリスト(ddlEqp)からオブジェクトを格納していたEqpSpecNameを選択してTxtJobにジョブを書き込み、まずそれをAddEqpの配列に保存してから、セッションから取り出してデータベースに保存しますUpdate_Clickにあります)
/* I use this method to add */
protected void AddEqp_Click(object sender, EventArgs e)
{
// ...
EqpSpec objEqpS = new EqpSpec();
objEqpS.EqpName = ddlEqp.SelectedValue;
objEq.EqpSpec = (EqpSpec)db.Next(objEqpS);
objEq.Job = Convert.ToInt32(TxtJob.Text);
listEqp.Add(objEq);
Session["listEqp"] = listEqp;
}
/* I use this method for both update and store */
protected void Update_Click(object sender, EventArgs e)
{
DatabaseConnection db = new DatabaseConnection();
ArrayList listEqp = (ArrayList)Session["listEqp"];
Prj objPrj= new Prj();
objPrj.PrjName = ddlPrj.SelectedValue;
objPrj = (Prj)db.Next(objPrj);
Eqp[] arrayEqp = new Eqp[listEqp.Count];
for (int i = 0; i < listEqp.Count; i++)
arrayEqp = (Eqp)listEqp;
objPrj.Eqp = arrayEqp;
db.Update(objPrj);
}
重複の理由は何ですか?回避するにはどうすればよいですか?