соединение закрывается при использовании курсора и процедуры - PullRequest
0 голосов
/ 09 ноября 2018

Мой код -

        string oracleb = "Data source=HPPRO58; user ID=system; password=deb;";
        conn = new OracleConnection(oracleb);
        //conn.Open();
        conn.Open();
        String x3 = "google";
        String x1 ;
        String x2;
        String s1 = "delete from temp";
        OracleCommand comm = new OracleCommand(s1, conn);
        comm.ExecuteNonQuery();


        OracleCommand comm2 = new OracleCommand();
        String s2 = "cv";
        comm2.Connection = conn;
        comm2.CommandText = s2;
        comm2.CommandType = CommandType.StoredProcedure;
        comm2.Parameters.Add("x", System.Data.OracleClient.OracleType.Number).Value = comboBox1.Text;
        comm2.Parameters.Add("y", System.Data.OracleClient.OracleType.Number).Value = comboBox2.Text;
        comm2.Parameters.Add("z", System.Data.OracleClient.OracleType.Number).Value = x3;
        comm2.ExecuteNonQuery();

        String s3 = "select * from temp";
        OracleCommand comm3 = new OracleCommand(s3, conn);
        OracleDataAdapter MyAdapter3 = new OracleDataAdapter();//adapter acts as interface btw database and dataset(which is collectio of tables)
        MyAdapter3.SelectCommand = comm;
        DataTable dTable3 = new DataTable();//datatable represents a single table in database 
        MyAdapter3.Fill(dTable3);
        dataGridView1.DataSource = dTable3;
        conn.Close();

Моя ошибка-

enter image description here

Я пытаюсь запустить процедуру, в которой также есть курсор. Поэтому я использую 3 переменные связи. Но я получаю вышеуказанную ошибку. Поэтому мне было интересно, как ее решить.

Я открыл соединение при запуске функции, но все еще показывает, что соединение закрыто.

Edit-

моя процедура называется cv

новая ошибка- enter image description here

моя процедура-

create or replace procedure cv(x in int,y in int,z in varchar)
as
cursor c
is
select email,collegename,cgpa,compname
from student_cv
where (cgpa>=x and yearsofexp>=y) and compname=z;
tem c%rowtype;
begin
open c;
loop
fetch c into tem;
exit when c%notfound;
insert into temp values(tem.email,tem.collegename,tem.cgpa,tem.compname);
end loop;
end;
/

строка 59 is-

comm2.Parameters.Add("x", System.Data.OracleClient.OracleType.Number).Value = comboBox1.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...