Как передать NULL в БД

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Всем здрасте )
Вот сижу и никак не могу понять как через переменные в кубике "Запрос к базе данных" передать значение NULL т.е. чтобы если в значении переменной Variable null то он передался бы в переменную @var = {-Variable.-} буду благодарен за помощь.
 

dert12

Client
Регистрация
24.11.2017
Сообщения
25
Благодарностей
8
Баллы
8
INSERT INTO имя_таблицы SET имя_столбца=NULL;
'Nullable' столбца должен быть 'YES'
 

Вложения

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Это понятно) но мне хочется передать null в переменной. Пример в проекте есть переменная var1 обычно это число но иногда это слово null так вот в кубике бд я пишу запрос типа insert from table (id,num) value (NULL, @num) и ниже в кубике присваиваю num {-variable.var1-} так вот пока var1 число то все норм а когда слово null он так и передаёт строку null а мне бы именно null передать, может быть можно писать условие в теле запроса или ещё какие варианты я бы хотел сделать все в 1 кубике т.к бывает много переменных
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Это понятно) но мне хочется передать null в переменной. Пример в проекте есть переменная var1 обычно это число но иногда это слово null так вот в кубике бд я пишу запрос типа insert from table (id,num) value (NULL, @num) и ниже в кубике присваиваю num {-variable.var1-} так вот пока var1 число то все норм а когда слово null он так и передаёт строку null а мне бы именно null передать, может быть можно писать условие в теле запроса или ещё какие варианты я бы хотел сделать все в 1 кубике т.к бывает много переменных
string test = string.Empty;
if(project.Variables["value"].Value != "NULL"){
test = project.Variables["value"].Value;
}
db.query("INSERT INTO `gmail` (`id`, `login`) VALUES(NULL, '"+test+"')");

Если я вас правильно понял.
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
string test = string.Empty;
if(project.Variables["value"].Value != "NULL"){
test = project.Variables["value"].Value;
}
db.query("INSERT INTO `gmail` (`id`, `login`) VALUES(NULL, '"+test+"')");

Если я вас правильно понял.
Этот код нужно писать в отдельном кубике "Свой C# код" я правильно понимаю ?
Я тут накидал небольшой проект может кто поможет )
Так вот вариант с двумя кубиками "запрос к бд" не подходит нужно чтобы кубик был 1.
 

Вложения

  • 195,7 КБ Просмотры: 6
  • 233,8 КБ Просмотры: 5
  • 196,1 КБ Просмотры: 3
  • 14,3 КБ Просмотры: 3

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Этот код нужно писать в отдельном кубике "Свой C# код" я правильно понимаю ?
Я тут накидал небольшой проект может кто поможет )
Так вот вариант с двумя кубиками "запрос к бд" не подходит нужно чтобы кубик был 1.
Так всё что вы там написали можно сделать 1 кубиком, там делов на 10 минут
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Этот код нужно писать в отдельном кубике "Свой C# код" я правильно понимаю ?
Я тут накидал небольшой проект может кто поможет )
Так вот вариант с двумя кубиками "запрос к бд" не подходит нужно чтобы кубик был 1.
Random rnd = new Random();
int val = rnd.Next(2);
string num = string.Empty;
if(val == 0) num = val.ToString();

ZennoPoster.Db.ExecuteQuery("INSERT INTO `test_null`(`id`, `num`) VALUES (NULL,'"+num+"')", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, "server=localhost;user id=root;persistsecurityinfo=True;database=test", " ", "\r\n");
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Не посмотрел, что вы там генерируете.
Вот так как у вас в кубиках
Random rnd = new Random();
int val = rnd.Next(4);
string num = string.Empty;
if(val != 1) num = "1";
ZennoPoster.Db.ExecuteQuery("INSERT INTO `test_null`(`id`, `num`) VALUES (NULL,'"+num+"')", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, "server=localhost;user id=root;persistsecurityinfo=True;database=test", " ", "\r\n");
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
т.е сделать все в кубике "Запрос к базе данных" возможности нет , нужно все делать отдельно в c#
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
т.е сделать все в кубике "Запрос к базе данных" возможности нет , нужно все делать отдельно в c#
Я же вам написал, ваш рандом и запрос к бд, в одном кубике.
Вам что ещё нужно?
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Ну как минимум понять что это такое я не силен в c#, можете добавить комментарии к коду , я попробовал его сейчас в зенке циклом 50 раз записывает в столбец num только цифру 1.
Просьба опишите код что к чему будем разбираться , спасибо.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Ну как минимум понять что это такое я не силен в c#, можете добавить комментарии к коду , я попробовал его сейчас в зенке циклом 50 раз записывает в столбец num только цифру 1.
Просьба опишите код что к чему будем разбираться , спасибо.
Сомневаюсь конечно , что из 50 все 1
 

Вложения

  • 10,3 КБ Просмотры: 5

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Так а где тут передача NULL ?
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
смотрите рандом по сути мне не нужен был я его написал чтобы задать разные состояния у переменной:
Состояние 1 : цифра
Состояние 2 : NULL (строка)
вот и нужно чтобы в бд передалось NULL а не (строка NULL)
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Если вам принципиально нужен null, то вам выше уже писали ответ, если же нужна пустая строка в бд, то я вам тоже дал ответ.
Поэтому, думаю, что на все ваши вопросы дали исчерпывающие ответы.
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
То ли я дурак то ли лыжи не едут ) Нет ответа на мой вопрос ...
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Повторюсь есть переменная var и два состояния
Состояние 1 : цифра (0,1,2,3...)
Состояние 2 : NULL (строка)
и есть запрос в бд INSERT INTO , как в запрос передать NULL (не строку а NULL)
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Если вам принципиально нужен null, то вам выше уже писали ответ, если же нужна пустая строка в бд, то я вам тоже дал ответ.
Поэтому, думаю, что на все ваши вопросы дали исчерпывающие ответы.
Так тогда измените
string num = null;
Начните думать иногда
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Вот Это то что вы хотели?
 

Вложения

  • 10,3 КБ Просмотры: 5

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Ну это тоже самое что Вы высылали до этого и это не работает , string num = null; не работает, я не понимаю что я Вам сделал зачем столько негатива и высказываний лучше тогда не нужно мне помогать если собираетесь фыркать и высказываться в мою сторону, до этого я написал что не силен с C# что непонятного ? если Вы знаток то флаг вам в руки хотел попросить совета и помощи но такую помощь заберите себе пожалуйста.
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
В итоге кстати ничего рабочего так и не вышло если что .
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43

Вложения

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
select count(1) total, count(case when login is null then 1 end) nulls from gmail
 

Вложения

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Как вы видите 64 строка login есть NULL, это не я , а дб уже ответ дала.
Так что не знаю, что там у вас не получается.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Вот может там ошибся с проектом
 

Вложения

  • 10,5 КБ Просмотры: 3

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
И вот вам код

Random rnd = new Random();
int val = rnd.Next(4);//Рандом от 0 до 4, 4 не включительно. У вас так и написано в кубиле , т.е. 0,1,2,3
string num = "NULL";//NULL
if(val != 1) num = "1";//Если не равно 1, то num = 1
//Запрос на вставку строки в бд
ZennoPoster.Db.ExecuteQuery("INSERT INTO `test_null`(`id`, `num`) VALUES (NULL,"+num+")", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, "server=localhost;user id=root;persistsecurityinfo=True;database=test", " ", "\r\n");
 
  • Спасибо
Реакции: kolina и id0777

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Благодарю за потраченное на меня время , поймите меня правильно я не силен в c# может быть со временем это придет (будем стараться) но на данном этапе это не так и поэтому то что Вам кажется очевидным и простым для меня вызывает трудности и боль , в любом случае еще раз БОЛЬШОЕ спасибо за советы
viol2021 Ваше решение работает
пойду разбираться дальше
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Бармен всем пива за мой счет ))) :az:
 

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Я тоже не силён в с#, но вставку строки в базу данных с заранее известным NULL вставляю следующим способом. Может кому тоже понадобится.
C#:
string idCat = project.Variables["idCat"].Value;
string parentId = "null";
string cat = project.Variables["cat"].Value;
string statuse = "free";
    
string query = String.Format("INSERT INTO `parentid`(`idCat`, `parentId`, `cat`, `statuse`) VALUES ('{0}', NULL,'{2}','{3}')", idCat, null, cat, statuse);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)