|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Спасибо уже, за интересный диалог:) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 22:41 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624Shocker.ProТак что преобразовывай строку в guid, а потом форматируй обратно Единственный вариант?Это вариант исправить имеющийся недостаток алгоритма. То есть в алгоритме есть системная ошибка, которая заключается в том, что значение, которое будет распознано с помощью TryParse не обязательно может быть использовано для формирования sql запроса. В данном случае некорректно будет работать bit, real и uniqueidentifier. C datetime тоже будут серьезные проблемы, в частности могут быть перепутаны месяц и число. Фактически, можно рассчитывать, что только int отработает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 23:12 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Что касается изначальной проблемы - в чем вопрос? Поставь точку останова и посмотри, какой sql-запрос сформировался к выполнению ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 23:13 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624AxeleronКстати, великолепный образец дыры в безопасности SQL-injection. Поясните, если не сложно.очень упрощенно говоря, можно в текстбоксе написать ' drop database и текущая база будет удалена (при достаточности прав). Естественно, можно "наделать" и других "делов". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 23:15 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
AxeleronShocker.Proпропущено... бобер, выдыхай! Так может говорить только то кто не наступал на эти грабли (пока).чооо? буквы это всего лишь hex-представление байт, пофиг какой регистр. но если он у тебя хранится как строка, то ты сам себе злобный буратино. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 23:16 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
AntonariyAxeleronпропущено... Так может говорить только то кто не наступал на эти грабли (пока).чооо? буквы это всего лишь hex-представление байт, пофиг какой регистр. но если он у тебя хранится как строка, то ты сам себе злобный буратино. Ступай в свою стихию - на ПТ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2016, 03:13 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Antonariy, или читай выше, что ли... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2016, 03:14 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
AxeleronСтупай в свою стихию - на ПТ слив засчитан ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2016, 11:59 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Как всегда грабли у тех, кто собирает строку запроса, а не использует запрос с параметрами. Если параметру явно указан тип SqlDbType.UniqueIdentifier, то присваивать ему можно любое строковое представления GUID ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 14:51 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.Promishanya3624пропущено... Единственный вариант?Это вариант исправить имеющийся недостаток алгоритма. То есть в алгоритме есть системная ошибка, которая заключается в том, что значение, которое будет распознано с помощью TryParse не обязательно может быть использовано для формирования sql запроса. В данном случае некорректно будет работать bit, real и uniqueidentifier. C datetime тоже будут серьезные проблемы, в частности могут быть перепутаны месяц и число. Фактически, можно рассчитывать, что только int отработает нормально. Где косячит мой копипастный мозг:)? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 17:34 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Вопрос в чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 17:56 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.ProВопрос в чем? ТС при изучении языка пока не дошел до пункта "Запрос с параметрами" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 17:59 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.Pro, Shocker.ProТак что преобразовывай строку в guid, а потом форматируй обратно В преобразовании, что-то не так делаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 18:00 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Cat2, Это факт! А параметры указываются после cn.Open();, или все равно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 18:02 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Cat2Shocker.ProВопрос в чем? ТС при изучении языка пока не дошел до пункта "Запрос с параметрами"В данном случае это хорошее упражнение, чтобы осознать, что к чему. А то можно и запрос с параметрами не изучать, а сразу к EF перейти, не понимая основ. mishanya3624В преобразовании, что-то не так делаю...Я вообще сейчас не понимаю, что вы делаете. Нужно отделить этапы: 1) преобразовать из изначальной строки в конкретный тип 2) преобразовать из конкретного типа в строку ДЛЯ запроса обращаю внимание, что изначальная строка и конечная строка совпадать НЕ ОБЯЗАНЫ. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 18:39 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
а по большому счету, я вообще не понимаю, зачем вам эти попытки определить тип исходя из строки. У вас есть конкретный столбец, в котором будет идти поиск. Этот столбец конкретного определенного типа. Так зачем пытаться искать guid в строке с целым значением? все равно он найден не будет. Опять же чревато косяками - пользователь может ввести пару цифр для поиска в текстовой строке, а оно опознается как int и что дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 18:42 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.Proа по большому счету, я вообще не понимаю, зачем вам эти попытки определить тип исходя из строки. У вас есть конкретный столбец, в котором будет идти поиск. Этот столбец конкретного определенного типа. Так зачем пытаться искать guid в строке с целым значением? все равно он найден не будет. Опять же чревато косяками - пользователь может ввести пару цифр для поиска в текстовой строке, а оно опознается как int и что дальше? пользователю будут известны значения guid целиком, он должен копипастом просто найти данные по guid'у. А вкратце, где параметры указываются, при коннекте, или при создании коннекта, или перед запросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 22:40 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624Shocker.Proа по большому счету, я вообще не понимаю, зачем вам эти попытки определить тип исходя из строки. У вас есть конкретный столбец, в котором будет идти поиск. Этот столбец конкретного определенного типа. Так зачем пытаться искать guid в строке с целым значением? все равно он найден не будет. Опять же чревато косяками - пользователь может ввести пару цифр для поиска в текстовой строке, а оно опознается как int и что дальше? пользователю будут известны значения guid целиком, он должен копипастом просто найти данные по guid'у.ваш ответ с моим вопросом ну никак не связан. зачем пользователю искать гуид в столбце, в котором его нет - неясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 23:21 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.Promishanya3624пропущено... пользователю будут известны значения guid целиком, он должен копипастом просто найти данные по guid'у.ваш ответ с моим вопросом ну никак не связан. зачем пользователю искать гуид в столбце, в котором его нет - неясно. почему guid нет то, их там море в сотнях таблицах ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 23:52 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
Shocker.ProПро параметры https://msdn.microsoft.com/ru-ru/library/cc280502(v=sql.120).aspx нет, как в sql работать с параметрами, я в курсе:) я не пойму где параметризироваться в коде c#, в каком месте мне эти параметры прописывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2016, 23:56 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624Shocker.Proпропущено... ваш ответ с моим вопросом ну никак не связан. зачем пользователю искать гуид в столбце, в котором его нет - неясно. почему guid нет то, их там море в сотнях таблицахтогда зачем вы пытаетесь обнаружить int, float и т.п.? Перечитайте внимательно мою мысль. Еще раз - вы выбираете из списка столбец, в котором будет осуществляться поиск. Этот столбец имеет какой-то определенный тип данных. Вы же пытаетесь отформатировать значение в запросе не в соответствии с типом данных столбца , а полагаясь автоматическое определения типа данных, которое пользователь ввел в текстбокс для поиска. Это полная ерунда. Само по себе автоматическое определение тоже не обязательно право. Как я уже говорил выше, если пользователь ввел 123 в поле поиска, это не обязательно означает, что он хочет искать число в числовом поле, он может хотеть искать фрагмент текста в текстовом поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2016, 11:20 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624Shocker.ProПро параметры https://msdn.microsoft.com/ru-ru/library/cc280502(v=sql.120).aspx нет, как в sql работать с параметрами, я в курсе:) я не пойму где параметризироваться в коде c#, в каком месте мне эти параметры прописывать?в sql-запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2016, 11:20 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
mishanya3624Shocker.ProПро параметры https://msdn.microsoft.com/ru-ru/library/cc280502(v=sql.120).aspx нет, как в sql работать с параметрами, я в курсе:) я не пойму где параметризироваться в коде c#, в каком месте мне эти параметры прописывать? жесть вся проблема в нежелании использовать параметры ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2016, 11:52 |
|
Поиск в базе по Guid
|
|||
---|---|---|---|
#18+
:) я понимаю , что параметры надо использовать в запросе, но до этого момента, я же должен их как-то обозначить, дать им какое-то значение, вот это где надо прописывать, сам запрос я составлю, имея параметры. Shocker.Pro Дело в том, что поиск будет вестись не только по guid, который будет вводиться полностью, но и необходимо чтобы он искал и по словам (ФИО, название организации итд итп) поэтому необходимо автоопределение, чтобы он понимал, ввел guid ищет по guid ввел текст ищет только по тексту ввел число(сумма тех, или иных денег) ищет это число. pationжесть вся проблема в нежелании использовать параметры Да есть желание, надо только малость логики кода понять, где эти параметры определять и в каком виде, я так понял необходимо обозначать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2016, 12:14 |
|
|
start [/forum/topic.php?fid=20&msg=39148576&tid=1400859]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 331ms |
total: | 460ms |
0 / 0 |