|
|
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
Начинаю осваивать ADO.NET в visual 2008. Проблема такая. Есть MS SQL 2008. Создал SP в своей базе. Хранимка принимает на входе четыре параметра, выдает несколько полей. Когда запускаешь процедуру в самом сервере параметры принимаются без проблем. Когда пытаюсь вызвать эту процедуру и передать ей параметры из своего приложения на ASP.NET отрабатывает некорректно. Дело в том что параметры в хранимой процедуре могут быть указаны не все. Часть остается не установленными. Так вот, в sql все ок, если я некоторые параметры оставляю просто пустыми (данные там varchar и datatime), но когда я вытаюсь выполнить процедуру в приложении и оставляю параметры не определенными то ничего не ищет,поиск идет когда определишь все параметры. В чем может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2009, 21:04 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli оставляю параметры не определенными 1. Инициализируйте их DBNull.Value 2. Что в этом случае приходит в SP? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2009, 23:51 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
с null не работает вот код самой процедуры авторprocedure [dbo].[person_search] (@person_BirthDay as varchar (20), @person_SurName as varchar (20), @person_FirName as varchar (20), @person_SecName as varchar (20)) as if @person_Birthday != '' begin SELECT Person_SurName, Person_FirName, Person_SecName, Person_BirthDay FROM v_Person WHERE Person_SurName like @person_SurName+'%' and Person_FirName like @person_FirName+'%' and Person_SecName like @person_SecName+'%' and (Person_BirthDay = convert(datetime,@person_BirthDay, 104)) end else SELECT Person_SurName, Person_FirName, Person_SecName, Person_BirthDay FROM v_Person WHERE Person_SurName like @person_SurName+'%' and Person_FirName like @person_FirName+'%' and Person_SecName like @person_SecName+'%' and Person_BirthDay between '01/01/1900' and GETDATE() на сервере отрабатывает все ок, в приложении не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 19:18 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
смысл все этого: на форме есть четрые текстовых бокса фамилия имя отчество др. При поиске человека не всегда известны все данные, некоторые боксы остаются пустыми не null. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 19:20 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
нулл это не пустая строка (в MSSQL), либо передавайте не NULL а '', либо исправляйте процедуру Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 20:26 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
дело в том что я и передаю в переменную ''. Делаю в VS 2008 проект, там по умолчанию предлагается заменить пустую переменную на null, это параметр я убрал. Но все равно не отрабатывает корректно. Когда выполняю хранимку через management studio передаю переменные так автор@person_birthday='12.11.1976',@person_surname='',person_firname='',person_secname=''; отрабатывает корректно, т.е. выдает всех людей у кого дата рождения 12.11.1979 (в коде выше видно что идет конвертация строки в дату). Но когда я заполняю поля в форме поиска в приложении, если не заполнить все остальные поля поиск не пойдет. (( в чем может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 21:11 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli Код: plaintext 1. /me думет: повбивав би... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 11:04 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
Ex_Soft [quot ecoli] Код: plaintext 1. /me думет: повбивав би... [/quot Ex_Soft] не понял не одного слова в посте, кроме моей цитаты ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 11:11 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli кроме моей цитаты Этого - достаточно. Надеюсь Вы не дальтоник и телебачер у Вас не черно-белый... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 11:21 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
что не так? вводится дата строковой переменной, затем конвертируется в дату. Здесь все работает. Не понятно почему хранимая процедура вызываемая из приложения не работает пока ей не указать все параметры, а мне надо чтобы работало как в sql без указания некоторых параметров. Я так вижу что просто не понятно в чем у меня проблема. Тогда еще раз обрисую. Есть хранимая процедура на sql server 2008 ent. Когда вызываешь ее и передаешь параметры (оставляя некоторые пустыми в таком виде '') все работает как надо. Задаешь только фамилию и дату рождения находит нужного человека. Когда все это дело происходит в web приложении на страничке где 4 текстовых поля, работает только тогда когда указываешь значения во всех четырех полях. Т.е. обязательно нужно определить все четыре переменные. Проблема в том как сделать так чтобы в моем web приложении работало так же как на servere sql. Т.е. без точного указания всех четырех переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 12:58 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
Так (без проверки - навскидку): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Ессессно из-за финта ушами с is null - natural scan... Если не устраивает, как вариант, DSQL... Хотя... Бабушка надвое сказала, что в этом случае оптимальнее будет... Ну или самый опримальный вариант - куча if'ов... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 14:22 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
хммм.... интересно, надо будет поробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 14:29 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
уважаемый Ex_Soft, все равно история таже Создал процедуру на сервере по вашему шаблону. Отработала нормально. попытался ее обработь в приложении опять таже фигня. Пробный запрос с датой рождения прошел, ношел всех людей с определенной датой рождения, а вот при попытке поиска только по фамилии вылетел по таймауту :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 14:51 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli попытался ее обработь в приложении опять таже фигня Как? Код в студию... Тока ж без фанатизма - самую суть... BTW, про [ src ] не забываем ecoli при попытке поиска только по фамилии вылетел по таймауту Гм... Сока записей в таблице? Ex_Soft Ессессно из-за финта ушами с is null - natural scan... хотя... ecoli запрос с датой рождения прошел _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 15:05 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 21:25 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
в таблице 637608 записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 21:53 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli Код: plaintext 1. Не... Тут я - пас... Я такое не юзаю, а разбирацо - времени - нЭт... Да и - лень, если честно... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 12:21 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
ecoli 637608 записи /me думает: вроде - семечки, но в контексте ecoli Код: plaintext 1. бедный Ваш сервер и бедные пользователи... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 12:23 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
обычно ставят noyhing например(vb.net) если параметр должен быть по умолчанию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 16:59 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
Ex_Soft Код: plaintext 1. бедный Ваш сервер и бедные пользователи... А это плохо? Я же написал что только изучаю предмет. Лучше всетаки использовать dataset? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 19:36 |
|
||
|
хранимая процедура ado.net
|
|||
|---|---|---|---|
|
#18+
off ecoli А это плохо? наткнулсо: Мак-Дональд, Мэтью, Шпушта, Марио. Microsoft ASP.NET 3.5 с примерами на C# 2008 для профессионалов, 2-е изд. Жизненный цикл страницы с привязкой данных ...Важно понять, что этот процесс повторяется для каждого запроса. Это означает, что элемент управления-источник данных запрашивает базу данных при каждой обратной отправке страницы. Если это кажется излишней работой для вашей базы данных - что ж, так оно и есть... _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2009, 11:57 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35790489&tid=1351926]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 379ms |

| 0 / 0 |
