保存数据库中组合框的更改

时间:2012-10-15 09:21:12

标签: c# winforms

我有一个组合框,想要保存数据库中的更改。

我想要做的是如果选择了组合框并且它是真的,它必须运行下面的代码。如果它是假的,那么它必须跳过代码并进一步。

以下代码检查组合框是否已启用。但是当我正在编译它时,如果没有被选中则表示正确

private void Log()
{
    if (kaartburgerlijkestand.Enabled)
    {
        veranderingBurgelijkestaat();
    }
}

以下代码将数据保存在数据库中

private string veranderingBurgerlijkestaat()
{
    string gebruiker = curMedewerker.Behandelnaam;
    string bekeken = prodermaform.pKaart();
    string tabblad = tabControl1.SelectedTab.Text;
    string pat = CPatient.GeefPatientNaam(patient.Id);
    string wijz = "Burgerlijkestaat: " + kaartBurgerlijkestand.Text;

    CDb dcon = new CDb();

    try
    {
        if (dcon.Open())
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO dbo.loggen(Gebruiker, Bekeken, Tabblad, Patientnaam, Wijziging, Datum) VALUES(@gebruiker, @bekeken, @tabblad, @pat, @wijz, @datum)", dcon.Conn);
            cmd.Parameters.AddWithValue("@gebruiker", gebruiker);
            cmd.Parameters.AddWithValue("@bekeken", bekeken);
            cmd.Parameters.AddWithValue("@tabblad", tabblad);
            cmd.Parameters.AddWithValue("@pat", pat);
            cmd.Parameters.AddWithValue("@wijz", wijz);
            cmd.Parameters.AddWithValue("@datum", DateTime.Now);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        dcon.Close();
    }

    return wijz;
}

有人能告诉我一个如何做的例子

我找到了解决方案

我已经检查了

private void doCheck(object sender, EventArgs e)
{
    cmbox = false;

    if (kaartBurgerlijkestaat.Focused)
    {
        veranderingBurgerlijkestand();                
    }

    cmbox = true;

}

然后我使用了SelectedValueChanged事件

private void kaartBurgerlijkestand_SelectedValueChanged(object sender, EventArgs e)
{
    if (cmbox)
        doCheck(sender, e);  
}

它运作正常。

我要感谢大家帮助我!

1 个答案:

答案 0 :(得分:0)

添加一个事件监听器,仅kaartburgerlijkestand.Enabled检查您的组合框是否已启用以进行选择。 在InitializeComponent(); Form.cs个文件

之后添加此行
kaartburgerlijkestand.SelectedIndexChanged += new System.EventHandler
(this.kaartburgerlijkestand_SelectedIndexChanged);

还为上面的代码添加一个函数:

private void kaartburgerlijkestand_SelectedIndexChanged(object sender, EventArgs e)
    {
          veranderingBurgelijkestand();
    }