Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем. Помогите пожалуйста разрешить следующую проблему. Почему-то не возвращаются строки из Friend strCompany as string Me.SqlSelectCommand1.CommandText = "SELECT IDAuto, RegNumber, DateReg, VIN, NumbEngine, NumbCarriage, NumbBasket, color, SelectBox, KlimatKontr, IDNumbSpravkaSale, DataSale, NumbPTS, IssueDataPTS, CostAquisition, DateOper, IDOper, IDResponsRerson, Status, IDTypeEngine, Model,YearMade, IdAuto1, ModelEng, identTypeEngin, identTypeAuto, Company, IDModel FROM GibddOper where Company='" & strCompany & "'" Значение strCompany передается из основной формы приложения кодом Private Sub MenuItem4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem4.Click frm.strCompany = Me.Label1.Text frm.Show() End Sub Причём при отладке видно, что значение переменной присвоено, но строк нет. Если напрямую подставить "where Company='mosotis'", то всё получается, а задать в качестве переменной - строк нет. Подскажите пожалуйста - почему ? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 17:38 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Я сталкивался с такими проблемами Решаются так: на строке которая интересует ставишь breakpoint запускаешь приложение и выполняешь нужную процедуру при остановке потом жмешь F8 и последовательно просматриваешь значение своих переменных наводя на них мышкой или в watch Я думаю что та строка которая должна получиться с переменной будет иметь небольшое отличие от строки без перемменной P.S. Я делаю проще при таких вещах как параметр запроса Friend strCompany as string="'" & strCompany & "'" И ненадо парится с дополнительными кавычками типо твоих ...Company='" & strCompany & "'" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 19:18 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Да ставил я точки останова и раньше и сейчас для страховки. Значение переменной точно такое, какое надо. Попытался применить и Ваш метод - результат такой же. Чёрт .... Горююююю !!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 00:06 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Блин, кажется разобрался. Оказывается формирование строки Me.SqlSelectCommand1.CommandText в коде, сгенерированном мастером происходит раньше, чем успевает присвоиться значение переменной. Перетащив Me.SqlSelectCommand1.CommandText из области кода мастера в процедуру, которая гарантировано срабатывает после присваивания переменной, получил то, что надо. Вообще явилось новостью то, что код, сгенерённый мастером в форме, отрабатывается ещё до того, как вообще будет дана команда на открытие этой формы. Что ж буду иметь это ввиду ... vladgrig Спасибо, если бы не начал играться с breakpoint, то до сих пор ничего бы и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 00:27 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
sposad Me.SqlSelectCommand1.CommandText = "SELECT IDAuto, RegNumber, DateReg, VIN, NumbEngine, NumbCarriage, NumbBasket, color, SelectBox, KlimatKontr, IDNumbSpravkaSale, DataSale, NumbPTS, IssueDataPTS, CostAquisition, DateOper, IDOper, IDResponsRerson, Status, IDTypeEngine, Model,YearMade, IdAuto1, ModelEng, identTypeEngin, identTypeAuto, Company, IDModel FROM GibddOper where Company='" & strCompany & "'" Вообще для передачи параметров, есть специальный класс SqlParameter. Подобных проблем с которым и не возникло бы. При этом ваш запрос мог бы выглядеть следующим образом: Me.SqlSelectCommand1.CommandText = "SELECT IDAuto, RegNumber, DateReg, VIN, NumbEngine, NumbCarriage, NumbBasket, color, SelectBox, KlimatKontr, IDNumbSpravkaSale, DataSale, NumbPTS, IssueDataPTS, CostAquisition, DateOper, IDOper, IDResponsRerson, Status, IDTypeEngine, Model,YearMade, IdAuto1, ModelEng, identTypeEngin, identTypeAuto, Company, IDModel FROM GibddOper where Company=@company" Думаю свой запрос вы строили при помощи query builder при настройки SqlDataAdapter. Если бы в query builder'е вы добавили @company , необходимый параметер сформировался бы автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 07:36 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Так вот и я ГОВОРЮ Смотреть надо не только значение переменной А ПОЛУЧАЕМОЕ ЗНАЧЕНИЕ СТРОКИ ЗАПРОСА (с переменной и без неё, уверен они у тебя получаются не идентичные) Какая строка получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 08:39 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Upss... Не проснулся, и недочитал доконца топик Проблема то уже решена SORRY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 08:42 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
2Sa В query builder-е я не строил запрос, а просто перетащил в Dataset View с сервера целиком, да, без параметра. Параметр я потом пытался добавить в код мастера вручную типа ...Parameters.add("@company", strCompany). Но видно чего-то не так делал. При заполнении адаптера возникала ошибка. Мне кажется, что я как-то неправильно передавал значение параметра. Буду благодарен, если Вы приведёте мне пример строки (строк), где параметр добавляется и ему присваивается значение, полученное из основной формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 09:19 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Да, действительно, будет очень интересно, и если не трудно (уважаемый Sa, знаю что надежда тока на Вас) пример с параметром запроса по нескольким значениям сразу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 09:58 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
sposad Буду благодарен, если Вы приведёте мне пример строки (строк), где параметр добавляется и ему присваивается значение, полученное из основной формы. Создал проект, если у вас есть БД Nortwhind то могу скинуть. Для чистоты эксперимента использовал возможности визуальных мастеров в VS.NET. Вручную пришлось написать всего 4 строчки, из них по делу только одна: Код: plaintext 1. 2. 3. В данном контексте откуда получено значение параметра не важно, у меня это textbox txtParamValue А вот код полученный мастером: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 10:07 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
vladgrigпример с параметром запроса по нескольким значениям сразу количество значений не имеет значение, все остается в силе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 10:13 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Так получается??? Классно, а то я запарился с этими запросами... P.S. Кстати спасибо за прошлый топик с примером трёх ФОРМ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 10:58 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
vladgrig Код: plaintext 1. 2. 3. Так получается??? Ну если речь идет про БД Northwind то ProductID в Products является типом integer ,и тогда надо так: Код: plaintext 1. 2. В общем все работает как надо, для определенных типов присваем значения определенного типа (DateTime' у - DateTime, Int' у - Int and etc). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 11:28 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
пример productid был теоретический я про примеры из Northwind тока читал, у самого посмотреть руки не дошли но замечание верное id будет integer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 11:35 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
хотя в принципе можно и в textbox набирать цифры и т.п. а значение textbox.text передавать в параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 11:38 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
vladgrigхотя в принципе можно и в textbox набирать цифры и т.п. а значение textbox.text передавать в параметр Можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 12:17 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Уважаемый Sa, что бы без Вас тут делали База Northwind конечно есть. E-mail: Asmirnov@netman.ru Огромное спасибо. PS: Прошу прощения, что давно не читал топик - задрали на работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 14:01 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
sposadБаза Northwind конечно есть. Прикрепил проект к сообщению. ConnectionString в примере: Локальный сервер БД, аутентификация по учетной записи пользователя Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 14:47 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
млин голова уже гудит... Код: plaintext 1. 2. 3. 4. 5. 1) С числовыми значениями в БД работать хочет: (ProductID = @productid)" Me.cmdSelect.Parameters(productid).Value = 20 в запрсе получается (ProductID = 20) и запрос проходит А со строками не хочет: (ProductName = @product) Me.cmdSelect.Parameters(product).Value ="privet" в запрсе получается (ProductName = privet) и запрос, соответственно, не проходит надо чтобы получалось так (ProductName = 'privet') Менял значения в параметрах на LongVarChar и на другие - НЕ ХОЧЕТ И ВСЁ как сделать чтоб проходило значение в поле БД помеченном как текстовое??? 2) Me.cmdSelect.CommandText = "SELECT ProductName, ProductID FROM Products WHERE (ProductName = @product) AND (ProductID = @productid)" Если будет задан только один параметр, к примеру ProductName, а второй будет чистым - ЗАПРОС СРАБОТАЕТ (или надо будет весь запрос переписывать) Me.cmdSelect.CommandText = "SELECT ProductName, ProductID FROM Products WHERE (ProductName = @product)??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 14:51 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
У меня ведь в примере все ОК. Можете воспроизвести свою проблему в проекте testparameter и прикрепить к своему сообщению? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:35 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Не знаю как сделать ссылку на файл, но выход всё же нашёл ссылка Посмотрите, если не лень Решение этого проекта с применением параметров меня и интересует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 20:38 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Теперь вроде файл приложился по правилам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 21:34 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
vladgrig Посмотрите, если не лень Решение этого проекта с применением параметров меня и интересует... Довел ваш проект, до работоспособного состояния. Места кода где я что то менял помечены в комментарии как "by sa", поэтому можете воспользоваться поиском по тексту. Проблема у вас заключалась в порядке следования параметров в коллекции Parameters. В этом примере вы используете OleDbProvider, в OleDb название параметров в запросе не играет роли, а играет роль ПОРЯДОК их следования. Использование же именованных параметров в запросе (при OleDbPovider) может привести к ошибке, поэтому следует ставить "?" вместо названия параметра. Остальные комментарии смотрите в коде. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 08:06 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
Забыл приложить проект. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 08:08 |
|
||
|
Отбор в SelectCommand по переменной
|
|||
|---|---|---|---|
|
#18+
В случае с Access (с использованием параметров) я понимаю многое не получается... Именно по этому я и просил запрос по нескольким параметрам... Уважаемый Sa, спасибо за потраченное время, мне кажется оно проведено не зря (мы оба узнали что то новое) Решение моей проблемы мне видится таким... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 09:01 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1022&tid=1439013]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 406ms |

| 0 / 0 |
