Windowsフォームをフロントエンド、Oracle 11g Expressをバックエンドとして、Visual Studio 2010 Ultimateで更新アクションを実行しようとしています。これをコーディングするためにc#を使用しています。
private void update_student(string STUDENT_ID, string STUDENT_NAME, string STUDENT_ADDRESS)
{
con.Open();
String sql = "UPDATE STUDENT SET STUDENT_NAME = :STUDENT_NAME, STUDENT_ADDRESS= :STUDENT_ADDRESS WHERE STUDENT_ID= :STUDENT_ID";
OracleCommand query = new OracleCommand(sql, con);
OracleParameter[] updatestud = new OracleParameter[3];
//updatestud[0] = query.Parameters.Add("STUDENT_ID", OracleDbType.Varchar2, STUDENT_ID, ParameterDirection.Input);
updatestud[0] = query.Parameters.Add("STUDENT_ID", OracleDbType.Int32, STUDENT_ID, ParameterDirection.Input);
updatestud[1] = query.Parameters.Add("STUDENT_NAME", OracleDbType.Varchar2, STUDENT_NAME, ParameterDirection.Input);
updatestud[2] = query.Parameters.Add("STUDENT_ADDRESS", OracleDbType.Varchar2, STUDENT_ADDRESS, ParameterDirection.Input);
query.ExecuteNonQuery();
MessageBox.Show("Row Updated");
con.Close();
}
挿入および取得アクションを実行した後、更新クエリを試しています。
アプリケーションで使用した次のコードのパラメーターと値の流れを理解できませんでした。query.ExecuteNonQuery(); で次のエラーが発生します。ライン:
ORA-01722: 無効な番号 Oracle タイプを確認するための提案を受け取りました。しかし、修正にもかかわらず、同じエラーが見つかりました。Oracle 型を修正した後でも、同じエラーが見つかります。助言がありますか?