Как исправить ORA-01008: не все переменные связаны в asp.net - PullRequest
0 голосов
/ 15 мая 2018

Я хочу вставить таблицу оракула с процедурой, но я видел проблему ORA-01008, и я не знаю, как я могу решить эту проблему. Я видел эту проблему, когда запускается страница aspx. Решите эту проблему. Помогите мне

ПРОЦЕДУРА ВСТАВКИ:

   PROCEDURE INSERTQUESTION(
           p_name IN QUESTION.NAME%TYPE,
           p_tag IN QUESTION.TAG%TYPE,
           p_money IN QUESTION.MONEY%TYPE,
           p_explain IN QUESTION.EXPLAIN%TYPE,
         p_img IN QUESTION.PHOTOID%TYPE,
         p_mail IN USERS.MAIL%TYPE)
    IS
    BEGIN

   INSERT INTO QUESTION ("NAME","CREATEDATE","TAG","STATUS","MONEY","PHOTOID","OWNID","EXPLAIN") 
      VALUES (p_name,CURRENT_DATE,p_tag,'T',p_money,p_mail,(SELECT ID FROM USERS WHERE MAIL=p_mail),p_explain);

   COMMIT;

   END;

Эта страница на asp.net называется add.aspx. Я хочу запустить процедуру оракула add в таблицу оракула. ​​

 cnn = new OracleConnection(connectionString);

        string image_read = Request.Form["ImageRead"];

        string explain_read =this.addName.InnerText;
        string comment_read = this.addComment.InnerText;
        string price_read = Request.Form["priceMedia"];
        string tag_read = Request.Form["TagMedia"];
        float price = float.Parse(price_read);

        string pathsw = "/images/" + image_read;
        cnn.Open();
        OracleCommand profile_photo_cmd = new OracleCommand("insert into PHOTO (Path) values (:path) ", cnn);
        profile_photo_cmd.Parameters.Add(new OracleParameter(":path", pathsw));
        profile_photo_cmd.ExecuteNonQuery();


        OracleCommand cmd2 = cnn.CreateCommand();
        cmd2.CommandText = "SELECT MAX(ID) AS ID FROM PHOTO ";
        cmd2.CommandType = CommandType.Text;

        OracleDataReader dr = cmd2.ExecuteReader();
        dr.Read();
        string id = dr["ID"].ToString();
        int img_id = Int32.Parse(id);
        dr.Close();
        cnn.Close();

        string mailSession = "";

        if (Session["UserMail"] != null)
        {
            mailSession = Session["UserMail"].ToString();
        }

        cnn.Open();
        OracleCommand cmdu = cnn.CreateCommand();


cmdu.CommandText = "INSERTQUESTION(:exp_read,:t_read,:pri_read,:comment_read,:img_read,:mail_id)";
        cmdu.CommandType = CommandType.StoredProcedure;
            cmdu.BindByName = true;
            cmdu.Parameters.Add(new OracleParameter(":mail_id",OracleDbType.NVarchar2)).Value = mailSession;
            cmdu.Parameters.Add(new OracleParameter(":img_read",OracleDbType.Int32)).Value = img_id;
            cmdu.Parameters.Add(new OracleParameter(":exp_read", OracleDbType.NVarchar2)).Value = explain_read;
            cmdu.Parameters.Add(new OracleParameter(":comment_read", OracleDbType.NVarchar2)).Value = comment_read;
            cmdu.Parameters.Add(new OracleParameter(":pri_read",OracleDbType.BinaryFloat)).Value=price;
            cmdu.Parameters.Add(new OracleParameter(":t_read",OracleDbType.NVarchar2)).Value = tag_read;
            try
            {
                cmdu.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Response.Write(ex);
            }
            cnn.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...