试图创建一个表格,在那里我可以更新已搜索的记录

本文关键字:更新 我可以 在那里 搜索 记录 表格 创建 一个 | 更新日期: 2023-09-27 17:57:39

我创建了一个表单,可以在其中搜索访问数据库中的记录,然后选择存档,但我似乎无法获得更新脚本来实际更新上面查询中返回的记录。

有人能帮忙吗?

感谢

    private void button2_Click(object sender, EventArgs e)
    {
        System.Data.OleDb.OleDbConnection conn = new
        System.Data.OleDb.OleDbConnection();
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data     Source=BoilerSvc_be.mdb";
        try
        {
            conn.Open();
            OleDbCommand command = new OleDbCommand("SELECT * FROM Contacts WHERE Archived = 0 AND (Surname = '" + textBox3.Text + "' OR Initial = '" + textBox3.Text + "' OR [Post Town] = '" + textBox3.Text + "' OR [Post Code] = '" + textBox3 + "')", conn);
            command.Parameters.Add(new OleDbParameter("@Name", textBox3));
            OleDbDataReader reader = command.ExecuteReader();
            LoopThroughRecs(reader);
            // Insert code to process data.
        }
        finally
        {
            conn.Close();
        }
    }
    private void LoopThroughRecs(OleDbDataReader Data)
    {
        if (Data.Read())
        {
            customid.Text = Data["CustID"].ToString();
            FirstName.Text = Data["Initial"].ToString();
            LastName.Text = Data["Surname"].ToString();
            Address1.Text = Data["Address 1"].ToString();
            Address2.Text = Data["Address 2"].ToString();
            Address3.Text = Data["Address 3"].ToString();
            TownCity.Text = Data["Post Town"].ToString();
            PostCode.Text = Data["Post Code"].ToString();
            Telephone.Text = Data["Telephone"].ToString();
        }
    }
    private void button3_Click(object sender, EventArgs e)
    {
        System.Data.OleDb.OleDbConnection conn = new
        System.Data.OleDb.OleDbConnection();
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BoilerSvc_be.mdb";
        try
        {
            conn.Open();
            OleDbCommand command = new OleDbCommand("UPDATE tblContacts SET Archived = 1 WHERE CustID = "CustID");
            command.Parameters.Add(new OleDbParameter("@ID", customid));
        }
        finally
        {
            customid.Text = null;
            FirstName.Text = null;
            LastName.Text = null;
            Address1.Text = null;
            Address2.Text = null;
            Address3.Text = null;
            TownCity.Text = null;
            PostCode.Text = null;
            Telephone.Text = null;
            conn.Close();
            MessageBox.Show("Customer Archived");
            }
        }
    }
}

试图创建一个表格,在那里我可以更新已搜索的记录

您的更新命令似乎不正确。试试这个:

OleDbCommand command = new OleDbCommand("UPDATE tblContacts SET Archived = 1 WHERE CustID = @ID");
command.Parameters.Add(new OleDbParameter("@ID", customid));

同时尝试在select语句中使用参数,以避免SQL注入:

"SELECT * FROM Contacts WHERE Archived = 0 AND (Surname = @Name OR..."
command.Parameters.Add(new OleDbParameter("@Name", textBox3.Text));
//And also for other

您在更新中忘记了command.ExecuteNonQuery();

OleDbCommand command = new OleDbCommand("UPDATE tblContacts SET Archived = 1 WHERE CustID = @ID");
command.Parameters.Add(new OleDbParameter("@ID", customid));
command.ExecuteNonQuery();
相关文章: