Добрый день. Раньше делал все на SQL-инъекциях, принял волевое решение прекратить!
Теперь возникла проблема:
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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
Dim s As String = "insert into scl_artc (COD_ARTIC, NGROUP_TVR, NAME_ARTIC, CENA_ARTIC, PRIZN_VALT, CENA_VALT, COD_VALT, NDS_ARTIC," &
" NDS_TORGN, NACH_KOLCH, KON_KOLCH, REZ_KOLCH, EDIN_IZMER, VES_EDINIC, EDN_V_UPAK, MIN_PARTIA," &
" DLINA_ART, SHIRIN_ART, VYSOTA_ART, RAZM_IZMER, SCHET_ART, DOP1_ARTIC, DOP2_ARTIC, UCHET_CENA," &
" UCHET_VALT, UCHET_SUM, UCHET_SMVL, KOL_SUM, NGROUP_TV2, UCHET_0_C, NAL1_ART, NAL2_ART, " &
" UCHET_0_VL, FIX_NACEN, CENA_BZNAL, CENA_V_BZN, NGROUP_TV3, NGROUP_TV4, NGROUP_TV5, NGROUP_TV6," &
" PRICE_LIST, DOP3_ARTIC, COEF_BZNAL, OKDP_ARTIC, MIN_TVRZAP, MAX_TVRZAP, ID_SCLAD, BALL1," &
" BALL2, BALL3, BALL4, BALL5, DEPARTAM, NAL_PROD, TIP_TOVR)" &
"values(@COD_ARTIC, @NGROUP_TVR, NULLIF(@NAME_ARTIC,''), @CENA_ARTIC, @PRIZN_VALT, @CENA_VALT, NULLIF(@COD_VALT,''), @NDS_ARTIC," &
" @NDS_TORGN, @NACH_KOLCH, @KON_KOLCH, @REZ_KOLCH, NULLIF(@EDIN_IZMER,''), @VES_EDINIC, @EDN_V_UPAK, @MIN_PARTIA," &
" @DLINA_ART, @SHIRIN_ART, @VYSOTA_ART, NULLIF(@RAZM_IZMER,''), NULLIF(@SCHET_ART,''), NULLIF(@DOP1_ARTIC,''), NULLIF(@DOP2_ARTIC,''), @UCHET_CENA," &
" @UCHET_VALT, @UCHET_SUM, @UCHET_SMVL, @KOL_SUM, NULLIF(@NGROUP_TV2,''), @UCHET_0_C, @NAL1_ART, @NAL2_ART, " &
" @UCHET_0_VL, @FIX_NACEN, @CENA_BZNAL, @CENA_V_BZN, NULLIF(@NGROUP_TV3,''), NULLIF(@NGROUP_TV4,''), NULLIF(@NGROUP_TV5,''), NULLIF(@NGROUP_TV6,'')," &
" @PRICE_LIST, NULLIF(@DOP3_ARTIC, @COEF_BZNAL, NULLIF(@OKDP_ARTIC,''), @MIN_TVRZAP, @MAX_TVRZAP, @ID_SCLAD, @BALL1," &
" @BALL2, @BALL3, @BALL4, @BALL5, @DEPARTAM, @NAL_PROD, NULLIF(@TIP_TOVR,''))"
Dim InsertCommand As New SqlCommand(s, conn)
InsertCommand.Parameters.AddWithValue("@COD_ARTIC", NAME_PREDM)
InsertCommand.Parameters.AddWithValue("@NGROUP_TVR", IIf(NGROUP_TVR = "", "Новые загруженные товары", NGROUP_TVR))
InsertCommand.Parameters.AddWithValue("@NAME_ARTIC", Name_Artic)
InsertCommand.Parameters.AddWithValue("@CENA_ARTIC", CENA_ARTIC)
InsertCommand.Parameters.AddWithValue("@PRIZN_VALT", PRIZN_VALT)
InsertCommand.Parameters.AddWithValue("@CENA_VALT", CENA_VALT)
InsertCommand.Parameters.AddWithValue("@COD_VALT", COD_VALT)
InsertCommand.Parameters.AddWithValue("@NDS_ARTIC", NDS_ARTIC)
InsertCommand.Parameters.AddWithValue("@NDS_TORGN", NDS_TORGN)
InsertCommand.Parameters.AddWithValue("@NACH_KOLCH", NACH_KOLCH)
InsertCommand.Parameters.AddWithValue("@KON_KOLCH", KON_KOLCH)
InsertCommand.Parameters.AddWithValue("@REZ_KOLCH", REZ_KOLCH)
InsertCommand.Parameters.AddWithValue("@EDIN_IZMER", EDIN_IZMER)
InsertCommand.Parameters.AddWithValue("@VES_EDINIC", VES_EDINIC)
InsertCommand.Parameters.AddWithValue("@EDN_V_UPAK", EDN_V_UPAK)
InsertCommand.Parameters.AddWithValue("@MIN_PARTIA", MIN_PARTIA)
InsertCommand.Parameters.AddWithValue("@DLINA_ART", DLINA_ART)
InsertCommand.Parameters.AddWithValue("@SHIRIN_ART", SHIRIN_ART)
InsertCommand.Parameters.AddWithValue("@VYSOTA_ART", VYSOTA_ART)
InsertCommand.Parameters.AddWithValue("@RAZM_IZMER", RAZM_IZMER)
InsertCommand.Parameters.AddWithValue("@SCHET_ART", SCHET_ART)
InsertCommand.Parameters.AddWithValue("@DOP1_ARTIC", DOP1_ARTIC)
InsertCommand.Parameters.AddWithValue("@DOP2_ARTIC", DOP2_ARTIC)
InsertCommand.Parameters.AddWithValue("@UCHET_CENA", UCHET_CENA)
InsertCommand.Parameters.AddWithValue("@UCHET_VALT", UCHET_VALT)
InsertCommand.Parameters.AddWithValue("@UCHET_SUM", UCHET_SUM)
InsertCommand.Parameters.AddWithValue("@UCHET_SMVL", UCHET_SMVL)
InsertCommand.Parameters.AddWithValue("@KOL_SUM", KOL_SUM)
InsertCommand.Parameters.AddWithValue("@NGROUP_TV2", NGROUP_TV2)
InsertCommand.Parameters.AddWithValue("@UCHET_0_C", UCHET_0_C)
InsertCommand.Parameters.AddWithValue("@NAL1_ART", NAL1_ART)
InsertCommand.Parameters.AddWithValue("@NAL2_ART", NAL2_ART)
InsertCommand.Parameters.AddWithValue("@UCHET_0_VL", UCHET_0_VL)
InsertCommand.Parameters.AddWithValue("@FIX_NACEN", FIX_NACEN)
InsertCommand.Parameters.AddWithValue("@CENA_BZNAL", CENA_BZNAL)
InsertCommand.Parameters.AddWithValue("@CENA_V_BZN", CENA_V_BZN)
InsertCommand.Parameters.AddWithValue("@NGROUP_TV3", NGROUP_TV3)
InsertCommand.Parameters.AddWithValue("@NGROUP_TV4", NGROUP_TV4)
InsertCommand.Parameters.AddWithValue("@NGROUP_TV5", NGROUP_TV5)
InsertCommand.Parameters.AddWithValue("@NGROUP_TV6", NGROUP_TV6)
InsertCommand.Parameters.AddWithValue("@PRICE_LIST", PRICE_LIST)
InsertCommand.Parameters.AddWithValue("@DOP3_ARTIC", DOP3_ARTIC)
InsertCommand.Parameters.AddWithValue("@COEF_BZNAL", COEF_BZNAL)
InsertCommand.Parameters.AddWithValue("@OKDP_ARTIC", OKDP_ARTIC)
InsertCommand.Parameters.AddWithValue("@MIN_TVRZAP", MIN_TVRZAP)
InsertCommand.Parameters.AddWithValue("@MAX_TVRZAP", MAX_TVRZAP)
InsertCommand.Parameters.AddWithValue("@ID_SCLAD", ID_SCLAD)
InsertCommand.Parameters.AddWithValue("@BALL1", BALL1)
InsertCommand.Parameters.AddWithValue("@BALL2", BALL2)
InsertCommand.Parameters.AddWithValue("@BALL3", BALL3)
InsertCommand.Parameters.AddWithValue("@BALL4", BALL4)
InsertCommand.Parameters.AddWithValue("@BALL5", BALL5)
InsertCommand.Parameters.AddWithValue("@DEPARTAM", DEPARTAM)
InsertCommand.Parameters.AddWithValue("@NAL_PROD", NAL_PROD)
InsertCommand.Parameters.AddWithValue("@TIP_TOVR", TIP_TOVR)
InsertCommand.ExecuteNonQuery()
Вот этот код выдает ошибку "Incorrect syntax near ','." Подозреваю, что проблема в том,что какая-то переменная заменилась на пустое место, или какая-то строковая переменная попала без кавычек. Но как проверить? Как-то можно увидеть результирующий SQL-текст инсерта с уже примененными параметрами? CommandText продолжает показывать первоначальный текст с переменными даже после отработки заполнения параметров. Пробовал на простой таблице из 3-х полей - все срабатывает, то есть сам код плюс минус рабочий.
Спасибо.
|