表に問合せを行い、一部のフィールドから取得したデータに暗号化機能を適用した後、Oracle Database表を更新したいとします。しかし、(下)私のコードは正常に動作しません。Oracle Database表のデータが完全に更新されていません
private void button2_Click(object sender, EventArgs e)
{
using (OracleConnection conn = new OracleConnection(oradb))
conn.Open();
OracleCommand select = new OracleCommand("select empno,FNAME,LNAME from employee", conn);
OracleDataReader reader = select.ExecuteReader();
Int64 vempno = 0;
String fnameValue = "";
String lnameValue = "";
String afterConcatfname = "";
String afterConcatlname = "";
if (reader.HasRows)
{
while (reader.Read())
{
vempno = reader.GetInt64(0);
fnameValue = reader.GetString(1);
lnameValue = reader.GetString(2);
REA rea = new REA();
afterConcatfname = rea.Encrypt(fnameValue, rea.GenerateKey());
afterConcatlname = rea.Encrypt(lnameValue, rea.GenerateKey());
}
reader.Close();
}
OracleCommand update = new OracleCommand("update employee set fname =:fname, lname =:lname where empno =:empno", conn);
OracleParameter fname = new OracleParameter("fname", afterConcatfname);
OracleParameter lname = new OracleParameter("lname", afterConcatlname);
OracleParameter empno = new OracleParameter("empno", vempno);
update.Parameters.Add(fname);
update.Parameters.Add(lname);
update.Parameters.Add(empno);
update.ExecuteNonQuery();
}
は、私はすべてのエラーを受信しませんが、プログラムはすべて暗号化された値を持つ唯一の最後のレコードを暗号化します。私はすべての行を暗号化したい。
このような質問をしたときに、何がエラーであるのかを説明することがまず必要です。 – Steve
私は更新ロジックがループ内にある必要があると推測していますので、行ごとに1回実行されます。 –
usingステートメントブロックにはOpenおよびその他の呼び出しのみが含まれていると思います。だから接続とエラーの多く。 – Steve