powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Передача null в UPDATE- а как вы это готовите?
9 сообщений из 9, страница 1 из 1
Передача null в UPDATE- а как вы это готовите?
    #39069233
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASP.NET передаю значения из TextBox. Вместо null - пустая строка. Проверить-то я могу и передать null
но вот с такими фокусами
Код: c#
1.
2.
3.
 command.Parameters.AddWithValue("@revcode",null);
 if (revcode != null)
 command.Parameters["@revcode"].Value = revcode.ToString();


и так для каждого параметра. Параметров больше десяти. Рисовать команду для апдейт каждого поля - устанет нога. Динамика?
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069303
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
    public static string EmptyIfNull(this object str) // object или более узкий нужный класс
    {
      return str == null ? "" : str.ToString();
    }



Код: c#
1.
command.Parameters.AddWithValue("@revcode",revcode.EmptyIfNull());
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069341
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

1. вместо "" следует использовать DBNull.Value
2. зачем приводить к строке ( str.ToString() )?
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069351
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA2. зачем приводить к строке ( str.ToString() )?это спрашивай у автора, я вообще не знаю, что такое revcode

skyANA1. вместо "" следует использовать DBNull.Value это я тупанул с задачей, наоборот сделал, чем автору надо, ему надо NullIfEmpty. Но тогда, правда, становится неясно, где там у него вообще пустая строка фигурирует в его коде
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069396
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, быдлкод, но вроде инъекциям не подвержено
Код: 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 UpdateTask(int id, IOrderedDictionary content)
        {
            int i = -1;
            try
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    SqlCommand command = connection.CreateCommand();
                    StringBuilder sb = new StringBuilder("update tasks set ");
                    int count = content.Count;
                    string[] keys = new string[count];
                    object[] values = new object[content.Count];
                    content.Keys.CopyTo(keys, 0);
                    content.Values.CopyTo(values, 0);
                    for(int c=0;c<count;c++)
                    {
                        sb.Append(string.Format("\n,{0}=@{0}",keys[c]));
                        command.Parameters.AddWithValue("@"+keys[c],values[c]==null?DBNull.Value:values[c]);
                    }
                    sb.Append("\n where id=@id");
                    sb.Remove(17, 2);
                    command.CommandText = sb.ToString();
                    command.Parameters.AddWithValue("@id", id);
                    command.ExecuteNonQuery();
                    i = 1;
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069424
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм, этот код имеет мало отношения к изначальному вопросу

waszkiewiczВозможно, быдлкоднафига там вообще какие-то промежуточные массивы и цикл for?
foreach (var j in content) и вперед
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069447
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proгм, этот код имеет мало отношения к изначальному вопросу

waszkiewiczВозможно, быдлкоднафига там вообще какие-то промежуточные массивы и цикл for?
foreach (var j in content) и вперед
я тоже так думал. Но IOrderedDictionary и MSDN думают по-другому
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069673
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewiczShocker.Proгм, этот код имеет мало отношения к изначальному вопросу

пропущено...
нафига там вообще какие-то промежуточные массивы и цикл for?
foreach (var j in content) и вперед
я тоже так думал. Но IOrderedDictionary и MSDN думают по-другомуЧто по-другому?

Интерфейс IEnumerable реализует? Да. Так на фига промежуточные массивы и цикл for?
...
Рейтинг: 0 / 0
Передача null в UPDATE- а как вы это готовите?
    #39069957
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
был неправ :(
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Передача null в UPDATE- а как вы это готовите?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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