powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SqlParameterCollection
19 сообщений из 19, страница 1 из 1
SqlParameterCollection
    #39213457
Фотография pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как создать коллекцию параметров . не привязанную к команде и добавить в нее параметры?

Делаю:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
SqlParameterCollection sqlParams = default(SqlParameterCollection);

SqlParameter param1 = new SqlParameter();
param1.DbType = DbType.Int32;
param1.ParameterName = "@CityID";
param1.Value = intCidyID;

sqlParams.Add(param1);             - здесь исключение : Ссылка на объект не указывает на экземпляр объекта



Что не так?
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213464
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
SqlParameterCollection sqlParams = new SqlParameterCollection();



default
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213549
Фотография pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так пробовал - пишет. что не определен конструктор
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213616
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
List<SqlParameter> sp = new List<SqlParameter>()
{
    new SqlParameter() {ParameterName = "@CityID", SqlDbType = SqlDbType.Int, Value= intCidyID}
};

                SqlCommand cmd = new SqlCommand(spName, con);
                cmd.CommandType = CommandType.StoredProcedure;

                if (sp.Count > 0)
                {
                    foreach (SqlParameter param in sp)
                        cmd.Parameters.Add(param);
                }

                ret = cmd.ExecuteNonQuery();
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213619
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
default - для ссылочных типов - null.
Для чего они не должны быть привязаны к SqlCommand?
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213656
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Konst_One
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
List<SqlParameter> sp = new List<SqlParameter>()
{
    new SqlParameter() {ParameterName = "@CityID", SqlDbType = SqlDbType.Int, Value= intCidyID}
};

                SqlCommand cmd = new SqlCommand(spName, con);
                cmd.CommandType = CommandType.StoredProcedure;

                if (sp.Count > 0)
                {
                    foreach (SqlParameter param in sp)
                        cmd.Parameters.Add(param);
                }

                ret = cmd.ExecuteNonQuery();



Параметр может быть привязан только к одной команде

См. приложенный рисунок.

Разве что после выполнения команды cmd.Parameters.Clear() сделать.

А так да, было бы хорошо иметь непривязанную ни к чему коллекцию параметров. Но увы
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213659
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cmd1 забыли указать , что это процедура

Код: c#
1.
cmd1.CommandType = ... 
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213660
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и коллекция параметров уже была передана в другую процедуру. делайте новую
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213663
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Konst_Onecmd1 забыли указать , что это процедура

Код: c#
1.
cmd1.CommandType = ... 


В данном случае неважно. Ошибка бы вылетела при выполнении команды
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213670
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2А так да, было бы хорошо иметь непривязанную ни к чему коллекцию параметров. Но увы
Для чего?
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213679
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вам нужна одна коллекция для нескольких процедур, то сделайте свой класс описания параметра и сделайте метод который будет из этого описания собирать новую коллекцию и передавать в параметры процедуры

Код: 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.
List<mySqlParameter> sp = new List<mySqlParameter>()
{
    new mySqlParameter() {ParameterName = "@CityID", SqlDbType = SqlDbType.Int, Value= intCidyID}
};

                SqlCommand cmd = new SqlCommand(spName, con);
                cmd.CommandType = CommandType.StoredProcedure;

                if (sp.Count > 0)
                {

                    foreach (mySqlParameter param in sp)
                        cmd.Parameters.Add( new SqlParameter() {ParameterName = param.ParameterName, SqlDbType = param.SqlDbType, Value= param.Value});
                }


                SqlCommand cmd1 = new SqlCommand(spName, con);
                cmd1.CommandType = CommandType.StoredProcedure;

                if (sp.Count > 0)
                {

                    foreach (mySqlParameter param in sp)
                        cmd1.Parameters.Add( new SqlParameter() {ParameterName = param.ParameterName, SqlDbType = param.SqlDbType, Value= param.Value});
                }


...
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213686
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЕвгенийВCat2А так да, было бы хорошо иметь непривязанную ни к чему коллекцию параметров. Но увы
Для чего?
Есть куча хранимок у которых два параметра: "@Id" и "@Value". Можно бы было параметры простым присваиванием создавать
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213695
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это:
Код: c#
1.
 cmd1.Parameters.Add( new SqlParameter() {ParameterName = param.ParameterName, SqlDbType = param.SqlDbType, Value= param.Value});



можно заменить методом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
...
 cmd1.Parameters.Add(getSQLParam(param));
...


public SqlParameter getSQLParam(mySqlParameter p) {
SqlParameter ret = new SqlParameter() {ParameterName = p.ParameterName, SqlDbType = p.SqlDbType, Value= p.Value};
return ret;
}
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213732
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Есть куча хранимок у которых два параметра: "@Id" и "@Value". Можно бы было параметры простым присваиванием создавать
А потом искать, почему параметры какие то левые:)
P. S. Если гора не идет к Магомеду, тогда Магомед меняет значение свойства CommandText у SqlCommand.
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213768
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
cmd.Parameters.Clear();
cmd.Parameters.AddRange(SqlParamters[] values);
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213815
Фотография pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВdefault - для ссылочных типов - null.
Для чего они не должны быть привязаны к SqlCommand?


Чтобы потом коллекцию параметров передать в функцию , которая выполнит следующее:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = strSQL;
sqlCmd.Connection = cnConnection;
if (sqlparArray != null)
{
    foreach (System.Data.SqlClient.SqlParameter param in sqlparArray)
    {
        sqlCmd.Parameters.Add(param);
    }
}            
sqlCmd.ExecuteNonQuery();



Где sqlparArray - коллекция переданная параметров в функцию , так же сюда будут передаваться strSQL - имя процедуры, и экземпляр соединения - cnConnection
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213820
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выше уже готовое почти решение выложил, что-то не понятно?
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213934
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pfЧтобы потом коллекцию параметров передать в функцию , которая выполнит следующее:

Чем не устраивает банальный Array или List?
...
Рейтинг: 0 / 0
SqlParameterCollection
    #39213997
Фотография pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВpfЧтобы потом коллекцию параметров передать в функцию , которая выполнит следующее:

Чем не устраивает банальный Array или List?

Уже сделал - через:

Код: c#
1.
SqlParameter[] sqlParams = new SqlParameter[4];



И вперед ....
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SqlParameterCollection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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