Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как дебажить Command.ExecuteNonQuery / 7 сообщений из 7, страница 1 из 1
28.04.2019, 10:26
    #39807270
Quantum181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Добрый день. Раньше делал все на SQL-инъекциях, принял волевое решение прекратить!

Теперь возникла проблема:
Код: vbnet
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-х полей - все срабатывает, то есть сам код плюс минус рабочий.

Спасибо.
...
Рейтинг: 0 / 0
28.04.2019, 10:33
    #39807271
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Quantum181
Код: vbnet
1.
NULLIF(@DOP3_ARTIC, @COEF_BZNAL, NULLIF(@OKDP_ARTIC,'')

тут
...
Рейтинг: 0 / 0
28.04.2019, 10:34
    #39807273
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Quantum181Подозреваю, что проблема в том,что какая-то переменная заменилась на пустое место, или какая-то строковая переменная попала без кавычеккогда все передаешь через параметры, то таких косяков не будет, так что смело ищи ошибку в исходном запросе
...
Рейтинг: 0 / 0
28.04.2019, 10:38
    #39807274
Quantum181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Shocker.Pro,

Спасибо, реально - сам слепой! =))
...
Рейтинг: 0 / 0
28.04.2019, 11:41
    #39807289
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Такой говнокод лучше сразу выбросить, без всякого дебаженья.
...
Рейтинг: 0 / 0
29.04.2019, 11:05
    #39807478
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
Quantum181принял волевое решение прекратить!

Спасибо.

чаще надо принимать такие жесткие решения!
...
Рейтинг: 0 / 0
29.04.2019, 14:17
    #39807623
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дебажить Command.ExecuteNonQuery
может для начала базу нормализуете? иначе рекомендую вам отказаться от реляционной базы данных и использовать текстовый файл
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как дебажить Command.ExecuteNonQuery / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]