powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не передаётся значение параметра.
8 сообщений из 8, страница 1 из 1
Не передаётся значение параметра.
    #37845418
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вот такая штука , почему параметр не передается в хранимую процедуру ?
Сама процедура выполняется но значение параметра null.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
private OracleConnection connect()
        {
            OracleConnection con = new OracleConnection();

            string con_str = "Data Source=(DESCRIPTION="
                           + "(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))"
                           + "(CONNECT_DATA=(SERVICE_NAME=ORCL)));"
                           + "User Id=username;Password=pass;";

            con.ConnectionString = con_str;
            con.Open();

            return con;
         }

        [WebMethod]
        public int RegisterPhone(string phone_in )
        {
            OracleConnection con = connect();

            OracleCommand reg = new OracleCommand("REGISTER#", con);
            reg.CommandType = CommandType.StoredProcedure;
       
            OracleParameter v_phone_in = new OracleParameter();
            v_phone_in.OracleDbType = OracleDbType.Varchar2;
            v_phone_in.Direction = ParameterDirection.Input;
            v_phone_in.Value = "testtest";// phone_in;
           
            OracleParameter ret = new OracleParameter();
            ret.OracleDbType = OracleDbType.Decimal;
            ret.Direction = ParameterDirection.ReturnValue;
            reg.Parameters.Add(ret);

            reg.ExecuteNonQuery();

            return (int)ret.Value;
            con.Close();
        }
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37845419
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
 v_phone_in.Value = "hhh";// v_phone;
reg.Parameters.Add(v_phone_in);



Это конечно же есть в программе.
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37845508
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jebrail
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        [WebMethod]
        public int RegisterPhone(string phone_in )
        {
            OracleConnection con = connect();
             
            // .....
            
            return (int)ret.Value; // ОТЛИЧНО!!!
            con.Close();
        }
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37845556
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторАлексей К

Да идиотский код , который я пишу в первый раз.

А по существу ?
Почему значение параметра не передаётся ?
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37845677
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public int RegisterPhone(string phone_in)
        {
            OracleConnection con = connect();

            OracleCommand reg = new OracleCommand("REGISTER#", con);
            reg.CommandType = CommandType.StoredProcedure;

            OracleParameter ret = new OracleParameter();
            ret.OracleDbType = OracleDbType.Int32;
            ret.Direction = ParameterDirection.ReturnValue;
            reg.Parameters.Add(ret);


            OracleParameter v_phone_in = new OracleParameter();
            v_phone_in.OracleDbType = OracleDbType.Varchar2;
            v_phone_in.Direction = ParameterDirection.Input;
            v_phone_in.Value = phone_in;
            reg.Parameters.Add(v_phone_in);
            
            reg.ExecuteNonQuery();

            con.Close();

            return 1;

        }



Так, тут позиционная запись как я понял и первым идёт return_value .
Во всяком случае щас параметр передался и функция отработала нормально.
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37845706
Фотография Jebrail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public int RegisterPhone(string phone_in)
        {
            OracleConnection con = connect();

            OracleCommand reg = new OracleCommand("REGISTER#", con);
            reg.CommandType = CommandType.StoredProcedure;

            OracleParameter ret = new OracleParameter();
            ret.DbType = DbType.Int32; // было OracleDbType  и каст не проходил 
            ret.Direction = ParameterDirection.ReturnValue;
            reg.Parameters.Add(ret);


            OracleParameter v_phone_in = new OracleParameter();
            v_phone_in.OracleDbType = OracleDbType.Varchar2;
            v_phone_in.Direction = ParameterDirection.Input;
            v_phone_in.Value = phone_in;
            reg.Parameters.Add(v_phone_in);
            
            reg.ExecuteNonQuery();
            con.Close();

            return (int)ret.Value;

        }



И чего такого ОТЛИЧНОго было в первом сообщении ?
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37846308
bobsvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(int)ret.Value не как не int ))) string
...
Рейтинг: 0 / 0
Не передаётся значение параметра.
    #37846315
bobsvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bobsvt(int)ret.Value не как не int ))) string

ошибочка вышла )))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не передаётся значение параметра.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]