|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Прошу сразу прощения если вопрос покажется кому-то примитивным, опыта пока маловато, а на просторах инета пока найдёшь что-то действительно нужное столько ненужного найдёшь, что голова кругом. Вообщем вопрос в названии, при компиляции выдаёт, если проигнорить и всё равно запустить то работает, смысл простой, есть грид и комбик, в комбике выбираем дату и грид перестаривается: Код: 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.
Модератор: Учимся использовать тэги оформления кода - FAQ Красным выделил строку где возникает данная ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 14:35 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
делай сразу нужную строку даты в формате YYYYMMDD и подставляй, но намного правильней делать это через SQL параметр с нужным типом данных, так как это защита от инъекций ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 14:43 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Konst_One, Там проблема даже не с тем что он преобразовать не может, если обратитет внимание на Load всё работает нормально, а вот когда в коде меняешь значение здесь ругается, типа он на этапе компиляции пытается туда что-то подставить, но у него не получается это сделать, а явно я указать дату не могу, весь смысл как раз в том чтобы дату выбирали из списка и весь грид перестраивался. В целом то код работает, но вот почему ругается на этапе сборки и как ему объяснить что там обязательно будет значение и оно его точно устроит, пока понять не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 14:52 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Где сама ошибка компиляции? И если ошибка на выделенной строке, то причем тут вообще вопросы про дату? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 14:57 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Shocker.Pro, То есть вы не поняли, ок, давайте распишу подробнее Выше я написал всего 2 метода, первый происходит при загруке формы, а второй при изменении значения в ComboBox Код прям один в один, но именно в изменение компилятор не может или не хочет подставлять значение и поэтому даёт ошибку и я не могу понять, как же ему объяснить чтобы он понимал что там обязательно будет нужное значение и при том при всём в методе Load компилятор всё устраивает, хотя там точно такой же код ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 15:10 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Попробуй в текстовое поле c датой вбить что-нибудь типа: Код: sql 1.
все тут же должно заработать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 16:17 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
AngelOKES давайте распишу подробнее ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 16:40 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
fkthat Попробуй в текстовое поле c датой вбить что-нибудь типа: ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 16:48 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Shocker.Pro после чего получает, исключение а вовсе не ошибку компиляции, как утверждает Возможно у него на форме объявлено свойство или поле "Text". А если это текстбокс, то строка соберется с его значением "Text.ToString()" - скорее всего подставится что-нибудь типа "System.Windows.Forms.TextBox" или я не знаю, как там для него ToString() реализован. Ошибки компиляции не будет по любому - на сервер уйдет корявый запрос, что и происходит. Но, лично я вообще против, чтобы автору как-либо помогать, пока он не перестанет собирать SQL конкатенацией вместо использования параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:07 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
fkthat Возможно у него на форме объявлено свойство или поле "Text" fkthat Но, лично я вообще против, чтобы автору как-либо помогать, пока он не перестанет собирать SQL конкатенацией вместо использования параметров. Хотя, судя по всему, человек пришел с какого-то скриптового языка, скорее всего с яваскрипта, отсюда такое непонимание (добро пожаловать в мир статического анализа и строгой типизации) )) А потом дашь ему ссылку на статью про инъекции ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:26 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Значение из текстбокса не соответствует маске 104 SQL-ной функции convert, вот и всё. За конкатенацию вместо параметров бить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:28 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Shocker.Pro А потом дашь ему ссылку на статью про инъекции Там не только инъекции, там ещё нюансы производительности - при новом значении параметра, отличного от предыдущего, на сервере будет рекомпиляция запроса вместо получения плана из кэша. Если запрос сложный, или часто вызывается, это может вылиться в ощутимый удар по производительности. На одном моем бывшем месте работы именно ввиду этого нюанса за конкатенацию депремировали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:32 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Shocker.Pro А потом дашь ему ссылку на статью про инъекции Там не только инъекции, там ещё нюансы производительности - при новом значении параметра, отличного от предыдущего, на сервере будет рекомпиляция запроса вместо получения плана из кэша. Если запрос сложный, или часто вызывается, это может вылиться в ощутимый удар по производительности. На одном моем бывшем месте работы именно ввиду этого нюанса за конкатенацию депремировали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:35 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Значение из текстбокса не соответствует маске 104 SQL-ной функции convert, вот и всё. За конкатенацию вместо параметров бить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:37 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Сон Веры Павловны при новом значении параметра, отличного от предыдущего, на сервере будет рекомпиляция запроса вместо получения плана из кэша. Давно уже не будет. Если еще не с 2005, то с 2008 версии это точно, сиквел (если у автора сиквел) умеет сам перед компиляцией перестраивать запрос, заменяя литералы на параметры. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:37 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Shocker.Pro он берет значение из this.Text Я про это и забыл, но мне простительно, я формсами вообще не занимаюсь. Значит там будет выполняться что-нибудь типа Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 17:40 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
проблему решил, просто добавил проверку на null всем спасибо за участие, очень радует такая активность, это значит что я правильно выбрал направление, будем копать дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 18:52 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
fkthat Shocker.Pro он берет значение из this.Text Я про это и забыл, но мне простительно, я формсами вообще не занимаюсь. Значит там будет выполняться что-нибудь типа Код: sql 1.
Ну я же вроде и выбрал топик WinForms или что-то нет? авторУ него там не текстовое поле, походу, он обрадается к свойству Form1.Text в котором лежит "Form1", после чего получает исключение, а вовсе не ошибку компиляции, как утверждает Ну я же вроде выше описал, что есть грид и комбик, та не сильно много букв было в самом вопросе, можно было бы и прочитать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 18:55 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Вангование Автор сделал свой контрол, напрямую унаследовав его от комбобокса, не учел работу контрола в дизайн-тайме. но запихнув внутрь работу с БД. А приведенный в первом посте код на самом деле относится к разным классам, а не к одному, о чем автор сказать забыл, отсюда разночтение. В итоге, ошибку он получает в дизайнере форм (в общем, это не ошибка компиляции, а ошибка рантайма самого контрола в дизайнере формы), потому что не проверяет, в дизайн-тайме или в ран-тайме запускается код контрола. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 19:23 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Shocker.Pro Автор сделал свой контрол, напрямую унаследовав его от комбобокса, не учел работу контрола в дизайн-тайме. но запихнув внутрь работу с БД. Жесть прямо какая-то... Оказывается, что сиквельный инжекшен это тут еще не самое страшное. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 19:37 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
fkthat Давно уже не будет. Если еще не с 2005, то с 2008 версии это точно, сиквел (если у автора сиквел) умеет сам перед компиляцией перестраивать запрос, заменяя литералы на параметры. Странно. Код: sql 1. 2. 3.
Код: 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.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 19:52 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Крайний запрос возвращает: Код: sql 1.
Ктулху его знает, но, как видишь, для user tables работает. Лучше у проф. ДВАшников спросить - я все-таки по этой теме просто "за что купил, за то и продаю". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 20:26 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
fkthat Ктулху его знает, но, как видишь, для user tables работает. Тут получается такая вот петрушка: Код: 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.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 21:02 |
|
Ошибка преобразования даты или времени из символьной строки
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Такое подозрение, что это связано либо с тем, что sys.all_objects это вьюха, либо с тем, что она системная. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 21:42 |
|
|
start [/forum/topic.php?fid=20&msg=39963507&tid=1398544]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 388ms |
0 / 0 |