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

  • Автор темы Автор темы lzlmrf
  • Дата начала Дата начала

lzlmrf

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

Код:
Развернуть Свернуть Копировать
string надо= project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = 'надо' ;";
 
Код:
Развернуть Свернуть Копировать
string надо= project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = надо ;";
 
  • Оценить
Реакции: lzlmrf
Код:
Развернуть Свернуть Копировать
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;"; - помогите , не пойму где косяк
 
Код:
Развернуть Свернуть Копировать
string id1 = project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = " + id1 + ";";
 
  • Оценить
Реакции: lzlmrf
  • Оценить
Реакции: lzlmrf
лучше делайте через переменные запроса:
Код:
Развернуть Свернуть Копировать
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
лучше делайте через переменные запроса:
Код:
Развернуть Свернуть Копировать
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);
Спасибо всем за попутку помочь! Но -
пустой ответ( Не ответ выше , не Ваш не помогает.
 
а так попробуй

C#:
Развернуть Свернуть Копировать
string id1 = project.Variables["key"].Value;
command.CommandText = "SELECT *  FROM table WHERE = + id1 + ";";
 

Не знаю, что у вас там не работает, - код, что я дал, со своей задачей справляется на отлично:

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

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

Посмотреть вложение 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";
не работает
 
Последнее редактирование:
решил вопрос. всем спасибо!
 
Будьте внимательнее, вы пропустили идентификатор:

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

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

Посмотреть вложение 12680
скопировал не проверив
a2XKQZMfy5Bnom
http://joxi.ru/a2XKQZMfy5Bnom
 
вообще то правильно изначально вводить так экранировать строку от спец символов , дабы не ругалось на нераспознанную последовательность....

Код:
Развернуть Свернуть Копировать
var id1 = "1"; //или переменная из проекта
var com = @"SELECT * FROM table WHERE id = "+id1+";";
command.CommandText = com;
 
  • Оценить
Реакции: lzlmrf
Подскажите правильный вариант запроса к БД.
Отправляю В ответ прилетает только одна строка
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 строк (это правильный ответ сервера)

Подскажите как записать в данном случае правильно. Спасибо!
 
Последнее редактирование:
Мне нужно 7. Правильно все 7 строк
 
Мне нужно в IN '{1}' в переменную '{1}' впихнуть всю эту компанию (141,142,143,144,145,146,147,148,149,150,151,152). Но как это правильно написать в запросе я не знаю. Сейчас в переменной под идентификатором 1 лежит вся компания, но не получаю полный результат.

Мне и нужно что бы все строки взялись, а берётся одна
 
правда пытаюсь понять, что тебе нужно не выходит) запрос (1,2,3), (1,2,3), (1,2,3) и т.д. нет? я просто я зх что тебе нужно, у тебя с твоими названиями переменных глаза расходятся. уверен что проблему можно решить. только тз кривое у тебя)
 
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)
Это даже не запрос, скорее всего ты что то на клаву пролил, или кот по ней пробежал. Глянь по камерам, кто это нашустрил такой код)
 
Вот Правильный результат. Ты думаю не особо разбираешься, как и я.

11.png
 
я как раз таки разбираюсь) любой запрос на этой планете составлю. но с этой секунды уже перестал :am:
 
Вопрос решен, если кто столкнётся с такой проблемой. Просто в запросе нужно было убрать кавычки. У меня было IN '{1}' , а нужно IN {1}
 
  • Оценить
Реакции: Sho
А как отправить запрос если имя таблицы в переменой лежит?
SQL:
Развернуть Свернуть Копировать
string query = String.Format(@"UPDATE listingsCeni SET `percent`='{0}',`pricebase`='{1}'...

string table= "listingsCeni"
Спасибо!
 
Последнее редактирование:
А как отправить запрос если имя таблицы в переменой лежит?
SQL:
Развернуть Свернуть Копировать
string query = String.Format(@"UPDATE listingsCeni SET `percent`='{0}',`pricebase`='{1}'...

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

103049
 
  • Оценить
Реакции: kolina

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