删除所选的任何记录但不删除当前记录。 C#

时间:2015-03-13 12:47:27

标签: c# ms-access

private void button4_Click(object sender, EventArgs e)
{
    myConn.Open();
    string query = "Delete * from tbl_attendance where [attendance_id] =" + textBox1.Text + "";
    OleDbCommand cmd = new OleDbCommand();                      
    string message = "Are you sure you want to delete this data?";
    string caption = "Delete";
    var result = MessageBox.Show(message, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
    if (result == DialogResult.OK)
    {
        cmd.Connection = myConn;
        cmd.CommandText = query;
        cmd.ExecuteNonQuery();
        MessageBox.Show("Successfully deleted recorded data");
        button4.Visible = false;
        button2.Visible = true;
        label5.Visible = false;
        textBox1.Visible = false;
        textBox1.Text = "";

        myConn.Close();

        try
        {
            myConn.Open();
            OleDbCommand cmd2 = new OleDbCommand();
            cmd2.Connection = myConn;
            string query2 = "Select attendance_id as [ID], username as [Username], time_in as [Time In],time_out as [Time Out] from tbl_attendance";
            cmd.CommandText = query2;

            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            dataGridView1.DataSource = dt;

            myConn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error " + ex);
        }
        myConn.Close();
    }
    else
    {
        this.DialogResult = DialogResult.Cancel;
        button4.Visible = false;
        button2.Visible = true;
        label5.Visible = false;
        textBox1.Visible = false;
        textBox1.Text = "";
    }
    myConn.Close();
}

我不确定插入语句的内容和位置,其中最后插​​入的数据可能不会被删除。比如,我的datagridview中的任何选定记录都可以删​​除,但不能删除当前记录,因为它是记录的最新时间。请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

警告:

没有你的数据库我不能测试这个

你的代码结构不合理,我不会尝试纠正这个

您正在使用访问权限。 BAD

我只是要写选择等不是完整的代码

1:选择您要删除的行

string id = textBox1.Text;
deleterow  = "Select * from tbl_attendance where id=" + id;

2:获取删除行上用户的最长时间

maxtime = "select max(timein) from tbl_attendance where username='" + deleterow["username"] + "'";

3:获取用户的行(或行)和

中的最长时间
lastrows = "select * from tbl_attendance where username='" +     deleterow["username" + "' and timein='" + maxtimein + "'";

4:将最后一行ID与您要删除的行进行比较

if (lastrows["id] == id)
{
//dont delete!
}