こんにちは、従業員評価プログラムを作成しています。これを達成するために、フィールドごとに各従業員の平均を取得する必要があります。従業員は、前の人の評価を上書きしないように、評価されるたびに新しい行に挿入されています。その従業員の私は自分のコードを持っていて、エラーをスローしていませんが、データベースに平均を書き込んでいません
public void AvOut()
{
try
{
string request = tbEmployee.Text;
//Opens a connection to the database
OleDbConnection conn = new OleDbConnection(ConnString);
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT [Admin].[OutPuts] FROM [Admin] WHERE EmployeeName ='" + request + "';";
OleDbDataReader reader = cmd.ExecuteReader();
int total = 0;
int count = 0;
while (reader.Read())
{
total += (int)reader["OutPuts"];
count++;
}
int avg = total / count;
OleDbCommand cmds = conn.CreateCommand();
cmds.CommandText = "SELECT MAX(EmployeeID) AS [id_no] FROM [Admin];";
OleDbDataReader dbReader = cmds.ExecuteReader();
dbReader.Read();
int id = Convert.ToInt32(dbReader["id_no"]);
OleDbCommand tot = conn.CreateCommand();
tot.CommandText = (@"UPDATE [Admin] SET AVGOutput ='" + avg + "' WHERE EmployeeID = " + id);
int affected = tot.ExecuteNonQuery();
conn.Close();
}
catch (Exception e)
{
MessageBox.Show("The exception is " + e.ToString());
}
}