簡體   English   中英

Textbox.Text更改前的最后一個值?

[英]Textbox.Text last value before the change?

我在執行以下代碼時遇到了麻煩:一切工作正常,我想做以下事情,

當用戶更改文本框時,如果通過了所有條件(您可以看到我的代碼),它將啟動數據庫查詢,該查詢將更新一行。 現在,為了觸發此查詢,我需要此文本框的舊值,然后再進行更改,現在,我如何在不使用addind變量的情況下執行此操作來存儲每個文本框的舊值,我幾乎沒有。

是否有任何事情可以紀念舊的價值?

謝謝。

    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();
        }
    }

好吧,我建議您創建並存儲您的TextBox屬性所引用的數據庫對象的ID(主 )。 這樣,您將能夠通過ID而不是最后一個TextBox值對對象進行UPDATE。

另一種方法-是通過Entity Framework來組織邏輯,以便您可以更改模型對象,而這些更改將反映在數據庫端。

您可以利用TextBox的Tag屬性。 只要您認為合適就存儲“舊”值(也許在第一次將其用作“新”值之后)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM