Как задать в запрос SQL значение из переменной?

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
Всем добра!
Подскажите плиз, как правельно в снипете задать значение переменной в запрос ?
так ошибки нет но и результата нет

Код:
string надо= project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = 'надо' ;";
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Код:
string надо= project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = надо ;";
 
  • Спасибо
Реакции: lzlmrf

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
Код:
string надо= project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = надо ;";
не работает( присваиваю id=1 )
string test1 = project.Variables["id"].Value;
command.CommandText = " SELECT * FROM table WHERE id = test1;";

Когда делаю для теста вывод по id все работает
string test1 = project.Variables["id"].Value;
command.CommandText = " SELECT * FROM table WHERE id = 1;"; - помогите , не пойму где косяк
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Код:
string id1 = project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = " + id1 + ";";
 
  • Спасибо
Реакции: lzlmrf

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43
лучше делайте через переменные запроса:
Код:
command.CommandText = "SELECT *  FROM table WHERE id = @id1";
var p = command.CreateParameter();
p.ParameterName = "id1"
p.Value = project.Variables["key"].Value;
command.Parameters.Add(p);
 
  • Спасибо
Реакции: lzlmrf

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
лучше делайте через переменные запроса:
Код:
command.CommandText = "SELECT *  FROM table WHERE id = @id1";
var p = command.CreateParameter();
p.ParameterName = "id1"
p.Value = project.Variables["key"].Value;
command.Parameters.Add(p);
Спасибо всем за попутку помочь! Но -
пустой ответ( Не ответ выше , не Ваш не помогает.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
а так попробуй

C#:
string id1 = project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = + id1 + ";";
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Не знаю, что у вас там не работает, - код, что я дал, со своей задачей справляется на отлично:

upload_2016-4-12_7-38-28.png

Если это не тот результат, что вам нужен, то будьте любезны, сформулируйте задачу более четко.
 
Последнее редактирование:

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
Не знаю, что у вас там не работает, - код, что я дал, со своей задачей справляется на отлично:

Посмотреть вложение 12678

Если это не тот результат, что вам нужен, то будьте любезны, сформулируйте задачу более четко.
Ваш код понятен. Вы присвоили переменной command значение переменной key , а мне надо сделать запрос в базу для последующего присвоения значений полей в переменные
Код:
// команда для MySql
var command = new MySql.Data.MySqlClient.MySqlCommand();
если я прямо указываю что надо взять
Код:
 command.CommandText = " SELECT *  FROM table WHERE id =1;";
// откроем соединение
  command.Connection.Open();
  // выполним команду
  var reader = command.ExecuteReader();
project.Variables["id"].Value  = reader["id"].ToString();
     project.Variables["name"].Value  = reader["name"].ToString();
то все берет, если же использую ваш пример - то переменные пустые
Код:
 string id1 = project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE  id =  + id1 + ;";
даже если так делать
var com = "SELECT * FROM table WHERE id = " + id1 + ";";
command.CommandText = "com";
не работает
 
Последнее редактирование:

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
решил вопрос. всем спасибо!
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 223
Баллы
113
Будьте внимательнее, вы пропустили идентификатор:

upload_2016-4-12_14-11-39.png

У меня все работает:

upload_2016-4-12_14-10-23.png
 
  • Спасибо
Реакции: sprint16, CSS и lzlmrf

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43

AShaggy

Активный пользователь
Регистрация
25.11.2014
Сообщения
335
Благодарностей
143
Баллы
43

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
вообще то правильно изначально вводить так экранировать строку от спец символов , дабы не ругалось на нераспознанную последовательность....

Код:
var id1 = "1"; //или переменная из проекта
var com = @"SELECT * FROM table WHERE id = "+id1+";";
command.CommandText = com;
 
  • Спасибо
Реакции: lzlmrf

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Подскажите правильный вариант запроса к БД.
Отправляю В ответ прилетает только одна строка
SQL:
"SELECT listingkonkyrent.barcodeConkyrent, ' Стоимость: ', positionkonkyrent.price, ' (', positionkonkyrent.priceOzon, ')' FROM positionkonkyrent, listingkonkyrent WHERE listingkonkyrent.idListingkonkyrent = positionkonkyrent.idListingkonkyrent AND positionkonkyrent.price<'{0}' AND positionkonkyrent.idcity='1' AND positionkonkyrent.idListingkonkyrent IN '{1}' AND positionkonkyrent.idZapros='{2}'",price, idListingkonkyrent, idZapros)
Вся проблема IN '{1}'
Потому что если я вместо IN '{1}', пишу IN (141,142,143,144,145,146,147,148,149,150,151,152)
В ответ прилетает 7 строк (это правильный ответ сервера)

Подскажите как записать в данном случае правильно. Спасибо!
 
Последнее редактирование:

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Мне нужно 7. Правильно все 7 строк
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Мне нужно в IN '{1}' в переменную '{1}' впихнуть всю эту компанию (141,142,143,144,145,146,147,148,149,150,151,152). Но как это правильно написать в запросе я не знаю. Сейчас в переменной под идентификатором 1 лежит вся компания, но не получаю полный результат.

Мне и нужно что бы все строки взялись, а берётся одна
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
правда пытаюсь понять, что тебе нужно не выходит) запрос (1,2,3), (1,2,3), (1,2,3) и т.д. нет? я просто я зх что тебе нужно, у тебя с твоими названиями переменных глаза расходятся. уверен что проблему можно решить. только тз кривое у тебя)
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
SQL:
"SELECT listingkonkyrent.barcodeConkyrent, ' Стоимость: ', positionkonkyrent.price, ' (', positionkonkyrent.priceOzon, ')' FROM positionkonkyrent, listingkonkyrent WHERE listingkonkyrent.idListingkonkyrent = positionkonkyrent.idListingkonkyrent AND positionkonkyrent.price<'{0}' AND positionkonkyrent.idcity='1' AND positionkonkyrent.idListingkonkyrent IN '{1}' AND positionkonkyrent.idZapros='{2}'",price, idListingkonkyrent, idZapros)
Это даже не запрос, скорее всего ты что то на клаву пролил, или кот по ней пробежал. Глянь по камерам, кто это нашустрил такой код)
 

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Вот Правильный результат. Ты думаю не особо разбираешься, как и я.

11.png
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
я как раз таки разбираюсь) любой запрос на этой планете составлю. но с этой секунды уже перестал :am:
 

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Вопрос решен, если кто столкнётся с такой проблемой. Просто в запросе нужно было убрать кавычки. У меня было IN '{1}' , а нужно IN {1}
 
  • Спасибо
Реакции: Sho

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
А как отправить запрос если имя таблицы в переменой лежит?
SQL:
string query = String.Format(@"UPDATE listingsCeni SET `percent`='{0}',`pricebase`='{1}'...

string table= "listingsCeni"
Спасибо!
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
А как отправить запрос если имя таблицы в переменой лежит?
SQL:
string query = String.Format(@"UPDATE listingsCeni SET `percent`='{0}',`pricebase`='{1}'...

string table= "listingsCeni"
Спасибо!
доверяй, но проверяй за ним :D

103049
 
  • Спасибо
Реакции: kolina

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