0

次のコードに問題があります: すべて正常に動作しています。次のことをしたいのですが、

ユーザーがテキストボックスを変更しているときに、すべての条件に合格した場合 (私のコードを見ることができます)、行を更新する DB クエリが起動されます。このクエリを起動するには、変更前にこのテキストボックスの古い値が必要です。変数を追加せずに、各テキストボックスに古い値を保存する方法を教えてください。

古い価値観を思い出す出来事はありますか?

ありがとう。

    private void txt1stRoom_Validated(object sender, EventArgs e)
    {
        if (txt1stRoom.Text == txt1stRoomHuman.Text || txt1stRoom.Text == txt2ndRoom.Text || txt1stRoom.Text == txt3rdRoom.Text)
            MessageBox.Show("Error - Cannot Use Same Monster");
        else if (txt1stRoom.Text != string.Empty)
        {
            SqlConnection cn = new SqlConnection("Data Source=" + serverTbx.Text + ";Initial Catalog=" + dbNameTbx.Text + ";User ID=" + dbUserTbx.Text + ";Password='" + dbPassTbx.Text + "';");
            m_daoManager.init(cn);
            string mobName = m_daoManager.getMonsterName(txt1stRoom.Text);
            m_daoManager.close(cn);
            if (mobName != string.Empty)
            {
                //
                var result1 = MessageBox.Show("Are You Sure u want to change " +lblOrc.Text + "to "+ mobName+ " , Please Notice - This will apply the changes to your database aswell!","Are You Sure?, Please Confirm this Change!", MessageBoxButtons.YesNo);
                if (result1 == System.Windows.Forms.DialogResult.Yes)
                {
                    m_daoManager.init(cn);
                    foreach (int zoneID in Maps.Keys)
                    {
m_daoManager.updateMonstersByZone(BeforeChangetxt1stRoom.Text, AfterChangetxt1stRoom.text, zoneID);
                    }
                    m_daoManager.close(cn);
                    lblOrc.Text = mobName;
                    lblOrc.ForeColor = Color.Green;
                    Properties.Settings.Default.lblOrc1 = lblOrc.Text;
                    Properties.Settings.Default.lblOrc1Color = lblOrc.ForeColor;
                }
            }
            else
            {
                MessageBox.Show("No Monster Found Under this ID");
                txt1stRoom.Text = string.Empty;
                lblOrc.Text = "Enter Mob ID";
                lblOrc.ForeColor = Color.Red;
                Properties.Settings.Default.lblOrc1 = lblOrc.Text;
                Properties.Settings.Default.lblOrc1Color = lblOrc.ForeColor;
            }
            Properties.Settings.Default.Save();
        }
    }
4

2 に答える 2

1

TextBox プロパティが参照するデータベース オブジェクトの ID (主キー) を作成して保存することをお勧めします。これを行うと、最後の TextBox 値ではなく、ID によってオブジェクトの UPDATE を行うことができます。

もう 1 つの方法は、Entity Frameworkを使用してロジックを整理することです。これにより、モデル オブジェクトを変更すると、これらの変更がデータベース側に反映されます。

于 2013-05-16T09:24:56.413 に答える