powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Частое создание параметров
6 сообщений из 6, страница 1 из 1
Частое создание параметров
    #37362554
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой код, написанный до меня (вместо OracleParameter можно поставить SqlParameter, ибо используется две СУБД):

OracleParameter param = new OracleParameter("paramName1", Convert.ToInt32(value1));
command.Parameters.Add(param);

param = new OracleParameter("paramName2", Convert.ToInt32(value2));
command.Parameters.Add(param);

param = new OracleParameter("paramName3", Convert.ToInt32(value3));
command.Parameters.Add(param);

param = new OracleParameter("paramName4", Convert.ToInt32(value4));
command.Parameters.Add(param);


Вопрос: если я уберу конструктор "new OracleParameter" и буду использовать для каждого параметра один объект, устанавливая его свойства (имя, тип данных, направление и т.д.), это действительно сэкономит память, или просто будет рефакторингом?
...
Рейтинг: 0 / 0
Частое создание параметров
    #37362843
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитайте про referance\value types и как они предаются
это не рефакторинг получится, а создание ошибки, которые отловите на рантайме
...
Рейтинг: 0 / 0
Частое создание параметров
    #37362857
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока я написал вот так:
command.Parameters.Add("paramName1", value1);

Т.е. обошелся без создания объекта типа OracleParameter.

А для выходного параметра так:
command.Parameters.Add(String.Empty, OracleDbType.RefCursor, ParameterDirection.Output);

И код этот работает. Смущало имя параметра выходного, которое вообще-то не надо указывать, а я указал String.Empty, но никакой ошибки не возникло.

Но здесь сразу возникает вопрос: ведь метод Add объекта OracleParameterCollection возвращает объект типа OracleParameter, который дальше можно использовать для установки свойств, не предусмотренных кучей перегруженных методов Add. Не одна ли малина получается?
...
Рейтинг: 0 / 0
Частое создание параметров
    #37362865
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. что код

param = new OracleParameter("paramName2", Convert.ToInt32(value2));
command.Parameters.Add(param);

что код

command.Parameters.Add("paramName2", Convert.ToInt32(valu2));

в плане расходования ресурсов машины работают одинаково.

Я прав или нет?
...
Рейтинг: 0 / 0
Частое создание параметров
    #37362964
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
показания путаются

то у вас
автори буду использовать для каждого параметра один объект

в другом посте
авторcommand.Parameters.Add("paramName1", value1);

почитайте Сеппу ADO.NET, станет немного яснее.

Вызов перегруженного метода в конечном итоге приведет к одному и тому же результату, в внутреннюю колекцию параметров добавится новый элемент.
...
Рейтинг: 0 / 0
Частое создание параметров
    #37363651
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Винни-БухЕсть такой код, написанный до меня (вместо OracleParameter можно поставить SqlParameter, ибо используется две СУБД):

OracleParameter param = new OracleParameter("paramName1", Convert.ToInt32(value1));
command.Parameters.Add(param);
А Вы точно уверены, что это будет работать с MS SQL?

Там System.Data.SqlClient нет метода Parameters.Add, который во втором параметре принимал бы значения.

Если вам реально надо одинаково писать, то используйте
Parametrs.AddWithValue("@paramName1", value1);

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.aspx

http://msdn.microsoft.com/en-us/site/system.data.oracleclient.oracleparametercollection
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Частое создание параметров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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