0

Winformsのデータベースにデータを追加、削除、更新しています。すべての追加、削除、更新フォームにグリッドビューがあります。「削除」ボタンをクリックしてレコードを削除した後、削除されたレコードはdataGridViewから即座に削除されます。

//// DATABINDがエラーを出していることに注意してください。つまり、使用中またはアセンブリ参照がありません。

コードビハインド:

    private void btnDelete_Click(object sender, EventArgs e)
    {

        if (txtIDD.Text == "")
        {
            MessageBox.Show("Please fill ID no. of record to Delete", "Important Message");

        }
        else
        {
            try
            {
                OleDbCommand Cmd = new OleDbCommand();
                Cmd.Connection = conn;
                conn.Open();
                Cmd.CommandText = "DELETE FROM AddressBook WHERE ID="+txtIDD.Text;
                Cmd.CommandType = CommandType.Text;
                Cmd.ExecuteNonQuery();
                Cmd.Connection.Close();
                conn.Close();
                dataGridView3.Update();
                MessageBox.Show("Delete Succesfull");
            }
            catch (System.Exception err)
            {
                  dataGridView3.DataSource = dt;
                  dataGridView3.DataBind();
                  dataGridView3.Update();

                this.label27.Visible = true;
                this.label27.Text = err.Message.ToString();
            }
        }

    }
4

2 に答える 2

0

追加、更新、削除などの後に、グリッドを再度バインドしてデータベースから値をフェッチします。

private void btnDelete_Click(object sender, EventArgs e)
{

    if (txtIDD.Text == "")
    {
        MessageBox.Show("Please fill ID no. of record to Delete", "Important Message");

    }
    else
    {
        try
        {
            OleDbCommand Cmd = new OleDbCommand();
            Cmd.Connection = conn;
            conn.Open();
            Cmd.CommandText = "DELETE FROM AddressBook WHERE ID="+txtIDD.Text;
            Cmd.CommandType = CommandType.Text;
            Cmd.ExecuteNonQuery();
            Cmd.Connection.Close();
            conn.Close();                

            **//Call a method that binds the grid or get DataTable from database and bind it like this**
             dataGridView3.DataSource = dt;               
            dataGridView3.Update();

            MessageBox.Show("Delete Succesfull");
        }
        catch (System.Exception err)
        {
            this.label27.Visible = true;
            this.label27.Text = err.Message.ToString();
        }
    }
}
于 2012-07-04T09:38:17.937 に答える
-2

グリッドをリロードできる関数を作成します

private method ReloadGrid()
{
   // first load your datatable/dt then set it as the datasource of your grid
   dataGridView3.DataSource = dt;
   dataGridView3.DataBind();

}
于 2012-07-04T09:43:03.477 に答える