'OleDb' does not support named parameters, it requires positional parameters. See
MS Learn | OleDbCommand.Parameters Property[
^].
Your SQL query should use '?' instead of named parameters like '@no', '@fid', and '@kid'. Your code will then look like -
using System.Data.OleDb;
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|DB.accdb;");
connection.Open();
int kid = MYVALUE;
int no = MYVALUE;
string fid = MYVALUE;
string query = "UPDATE mytable SET no = ? WHERE FID = ? AND KID = ?";
using (OleDbCommand cmd = new OleDbCommand(query, connection))
{
cmd.Parameters.AddWithValue("?", no);
cmd.Parameters.AddWithValue("?", fid);
cmd.Parameters.AddWithValue("?", kid);
cmd.ExecuteNonQuery();
}
connection.Close();