как использовать операцию отмены в базе данных ms-access - PullRequest
1 голос
/ 30 октября 2009

Я сейчас работаю в приложении, я загрузил базу данных MS_access в datagridview, там я написал код для вставки, удаления, обновления и поиска.

Например: IN Ms Word, когда мы нажимаем CTl + Z, любые ранее сделанные изменения будут восстановлены. Точно так же любые предыдущие изменения, сделанные в сетке данных, должны быть восстановлены с помощью кнопки или клавиш CTRL + Z.

public partial class Form2 : Form
{
    OleDbConnection con;
    OleDbDataAdapter da;
    DataTable dt;
    OleDbCommand cm;


    private void button26_Click(object sender, EventArgs e)//UPDATE OPERATION
    {                                 
        da.Update(dt);
        da = new OleDbDataAdapter("select * from Contacts", con);
        DataSet  ds = new DataSet();
        da.Fill(ds, "Contacts");
        FileStream book = new FileStream("softphone contacts.xml",
                                             FileMode.Create,
                                            FileAccess.Write);
        ds.WriteXml(book);
        dt = ds.Tables[0];
        dataGridView1.DataSource = dt;
    }

    private void button27_Click(object sender, EventArgs e)//SEARCH
    {
        string searchvalue;
        searchvalue = textBox3.Text;
        con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/ppd/db2.mdb;Jet OLEDB:Database Password=techsoft");
        da = new OleDbDataAdapter("select * from Contacts", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "Contacts");
        dt = ds.Tables[0];
        dataGridView1.DataSource = dt;
        DataView dv = ds.Tables[0].DefaultView;
       dv.RowFilter = "FirstName='" + searchvalue + "' or LastName like '%" + searchvalue + "' or WorkPhone like '%" + searchvalue + "%' ";
        ds.Tables.Clear();
        ds.Tables.Add(dv.ToTable());
        ds.AcceptChanges();
        da.Update(dt);
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        this.BackColor = System.Drawing.Color.SteelBlue;
        dataGridView1.Visible = true;
        //button25.Visible = true;
        button26.Visible = true;
        button27.Visible = true;
        textBox3.Visible = true;
        con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/ppd/db2.mdb;Jet OLEDB:Database Password=techsoft");
        da = new OleDbDataAdapter("select * from Contacts", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "Contacts");
        dt = ds.Tables[0];
        dataGridView1.DataSource = dt;
        string insertQuery = @"insert into  Contacts(FirstName,LastName,WorkPhone,ContactsID) Values (@FirstName,@LastName,@PhoneNumber,@no)";
        cm = new OleDbCommand(insertQuery, con);
        cm.Parameters.Add("@FirstName", OleDbType.VarChar, 10, "FirstName");
        cm.Parameters.Add("@LastName", OleDbType.VarChar, 10, "LastName");
        cm.Parameters.Add("@WorkPhone", OleDbType.VarChar, 10, "WorkPhone");
        cm.Parameters.Add("@ContactsID", OleDbType.VarChar, 10, "ContactsID");
        da.InsertCommand = cm;
        string update = @"update    Contacts set FirstName=@FirstName,LastName=@LastName,WorkPhone=@WorkPhone where(ContactsID=@ContactsID) ";
        cm = new OleDbCommand(update, con);
        cm.Parameters.Add("@FirstName", OleDbType.VarChar, 10, "FirstName");
        cm.Parameters.Add("@LastName", OleDbType.VarChar, 10, "LastName");
        cm.Parameters.Add("@WorkPhone", OleDbType.VarChar, 10, "WorkPhone");
        cm.Parameters.Add("@ContactsID", OleDbType.VarChar, 10, "ContactsID");
        da.UpdateCommand = cm;
        string delete = @"delete from  Contacts where FirstName=@FirstName ";
        cm = new OleDbCommand(delete, con);
        cm.Parameters.Add("@FirstName", OleDbType.VarChar, 10, "FirstName");
        da.DeleteCommand = cm;
    }           
}

}

Приведенный выше код ясно демонстрирует использование параметров обновления, удаления, поиска и вставки в datagridview, но я не знаю, как мне следует продолжить операцию отмены.

Может ли кто-нибудь помочь мне в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...