Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 109

Insert into ODBC Sybase не могу вставить данные

15.09.2017, 22:07. Показов 1092. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день товарищи.

Никак не получается сделать Insert в базу данных Sybase из DataGridView

C#
1
2
3
 InitializeComponent();
        }
        OdbcConnection conn = new OdbcConnection (@"Driver={SQL Anywhere 10};ENG=sv;UID=***;PWD=***;DBN=***;LINKS=TCPIP(HOST=192.168.0.75)");
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
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
private void btn_insert_zaliavos_Click(object sender, EventArgs e)
        {
           
 try
            {
                
                conn.Open();
                OdbcCommand cmd = new OdbcCommand("INSERT INTO gamyba1z (ID_GAMYBA, PRE_KOD, PRE_KODN, SAN_KOD, PRE_SKA, NL_KOD, OBJ_KOD, OB3_KOD, OB2_KOD, OB4_KOD, PRE_SK1) VALUES (@ID_GAMYBA, @PRE_KOD, @PRE_KODN, @SAN_KOD, @PRE_SKA, @NL_KOD, @OBJ_KOD, @OB3_KOD,  @OB2_KOD, @OB4_KOD,  @PRE_SK1)", conn);
                //SqlCommand cmd = new SqlCommand("INSERT INTO Plan_prekes VALUES(@Nr, @Data, @ID, @Pavadinimas, @S1, @S2, @S3, @S4, @Kiekis, @Darbuotojas, @Papildymas, @Akcija, @Grupe, @Klientas)", con);
                OdbcParameter ID_GAMYBA = cmd.Parameters.Add("@ID_GAMYBA", OdbcType.Int);
                OdbcParameter PRE_KOD = cmd.Parameters.Add("@PRE_KOD", OdbcType.Char);                
                OdbcParameter PRE_KODN = cmd.Parameters.Add("@PRE_KODN", OdbcType.Int);
                OdbcParameter SAN_KOD = cmd.Parameters.Add("@SAN_KOD", OdbcType.Char);
                OdbcParameter PRE_SKA = cmd.Parameters.Add("@PRE_SKA", OdbcType.BigInt);
                
                OdbcParameter NL_KOD = cmd.Parameters.Add("@NL_KOD", OdbcType.Char);
                OdbcParameter OBJ_KOD = cmd.Parameters.Add("@OBJ_KOD", OdbcType.Char);
                OdbcParameter OB3_KOD = cmd.Parameters.Add("@OB3_KOD", OdbcType.Char);
                //OdbcParameter OB6_KOD = cmd.Parameters.Add("OB6_KOD", OdbcType.Char);
                OdbcParameter OB2_KOD = cmd.Parameters.Add("@OB2_KOD", OdbcType.Char);
                OdbcParameter OB4_KOD = cmd.Parameters.Add("@OB4_KOD", OdbcType.Char);
                //OdbcParameter OB5_KOD = cmd.Parameters.Add("OB5_KOD", OdbcType.Char);
                OdbcParameter PRE_SK1 = cmd.Parameters.Add("@PRE_SK1", OdbcType.BigInt);
               
 
 
 
                /*и так далее для всех параметров ....
                */
 
                //Перенос данных из dataGridView_zaliavos в базу
                for (int i = 0; i < dataGridView_zaliavos.Rows.Count; i++)
                {               
                    if (dataGridView_zaliavos.Rows[i].Cells[0].Value == null)
                    { 
                        //Нет Id 
                        MessageBox.Show("Importuota !");
                        continue;
                    }
                    else
                    { ID_GAMYBA.Value = dataGridView_zaliavos.Rows[i].Cells[0].Value; } //ID 
 
 
                    if (dataGridView_zaliavos.Rows[i].Cells[1].Value == null)
                    { PRE_KOD.Value = DBNull.Value; }
                    else
                    { PRE_KOD.Value = dataGridView_zaliavos.Rows[i].Cells[1].Value; } //Kod
 
                    
 
                    //if (dataGridView_zaliavos.Rows[i].Cells[2].Value == null)
                    //{ PRE_KODN.Value = DBNull.Value; }
                    //else
                    //{ PRE_KODN.Value = dataGridView_zaliavos.Rows[i].Cells[2].Value; }  //Data                                          
 
                    if (dataGridView_zaliavos.Rows[i].Cells[3].Value != null)
                    { SAN_KOD.Value = DBNull.Value;  }
                    else
                    {  SAN_KOD.Value = dataGridView_zaliavos.Rows[i].Cells[3].Value;  } //Sklad
 
                    if (dataGridView_zaliavos.Rows[i].Cells[4].Value == null)
                    { PRE_SKA.Value =  DBNull.Value; }
                    else
                    { PRE_SKA.Value = dataGridView_zaliavos.Rows[i].Cells[4].Value; }  //Kolicestvo
 
                    if (dataGridView_zaliavos.Rows[i].Cells[5].Value == null)
                    { OBJ_KOD.Value = DBNull.Value; }
                    else
                    { OBJ_KOD.Value = dataGridView_zaliavos.Rows[i].Cells[5].Value; } //Serija
 
 
 
                    { PRE_KODN.Value = '1'; }                   
                    { NL_KOD.Value = '0'; }
                    { OB3_KOD.Value = DBNull.Value; }                    
                    { OB2_KOD.Value = DBNull.Value; }
                    { OB4_KOD.Value = DBNull.Value; }
                    //{ OBJ_KOD.Value = DBNull.Value; }
                    { PRE_SK1.Value = '0'; }
                    
 
 
 
                    //И так далее для всех параметров
                    /*
                    .....
                     */
                    //Выполнение команды (Его лучше сделать в отдельном try{} catch{}
 
                    try
                    {
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ee)
                    {
                        MessageBox.Show(ee.Message);
                    }
                }
            }
            catch (Exception ee)
            {
                //Обрабатываете возможное исключение при открытии
                MessageBox.Show(ee.Message);
            }
            finally
            {
                conn.Close();
            }
 
        
    }
Пишет что не находит столбика @ID_GAMYBA.
Просто через запрос:
SQL
1
2
INSERT INTO gamyba1z (ID_GAMYBA, PRE_KOD, PRE_KODN, SAN_KOD, PRE_SKA, NL_KOD, OBJ_KOD, OB3_KOD, OB2_KOD, OB4_KOD, PRE_SK1) 
VALUES(14580,10010000,1, 'INGRED. T', 100,0,'','','','',0)
данные вставляются.

Может есть идеи ?

Добавлено через 12 часов 11 минут
На сайте МелкоСофта вычитал, что скорей всего ODBC Command должен выглядеть так:
C#
1
OdbcCommand cmd = new OdbcCommand("INSERT INTO gamyba1z (ID_GAMYBA, PRE_KOD, PRE_KODN, SAN_KOD, PRE_SKA, NL_KOD, OBJ_KOD, OB3_KOD, OB2_KOD, OB4_KOD, PRE_SK1) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", conn);
Теперь после этого пишет, что столбик ID_GAMYBA, пустой, хотя весь DataGridView заполнен данными.

Неужели никто не сталкивался с Sybase Insert из DataGridView'а ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2017, 22:07
Ответы с готовыми решениями:

Не могу изменять данные в ODBC
Не могу изменять данные в ODBC......в чем проблемм ??? Подскажите плиззз.....Показывать - показывает, а при попытке изменения.....что-то...

Настройка odbc для подключения к sybase ase (*unix)
Доброе время суток! Попал я на поддержку проекта, который начинали писать много лет назад. Сейчас занимаюсь настройкой локального сервера...

Можно ли через INSERT вставить данные полей в несколько таблиц одновременно?
Вообщем можно ли с помощью оператора INSERT сразу вставить данные полей в несколько таблиц одновременно???Может какой-нить инсерт с...

4
102 / 24 / 12
Регистрация: 12.12.2013
Сообщений: 211
Записей в блоге: 1
20.09.2017, 07:26
Цитата Сообщение от vadca Посмотреть сообщение
Неужели никто не сталкивался с Sybase Insert из DataGridView'а ?
А чем какая-то вставка данных отличается, будь то Sybase, Orcale, etc??
Скрипт создания таблицы покажите.
0
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 109
20.09.2017, 08:41  [ТС]
Незнаю в чем разницв, этот код заманив Odbc наSql работает. Тут сделал подругому. Позже вылажу код если интересно

Добавлено через 1 час 9 минут
Вот работающий вариант:

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
 string StrQuery_gamyba;
            try
            {
                using (OdbcCommand comm = new OdbcCommand())
                {
                    comm.Connection = conn;
                    conn.Open();
                    for (int i = 0; i < dataGridView_gaminys.Rows.Count; i++)
                    {
                        StrQuery_gamyba = @"INSERT INTO gamyba1G (ID_GAMYBA, PRE_KOD,PRE_KODN,SAN_KOD,PRE_SKA, pre_sum, pre_proc, nl_kod, obj_kod, ob2_kod, ob3_kod, ob4_kod, pre_gal) VALUES (
                        " + ID_GAMYBA.Text + ", '"                        
                        + dataGridView_gaminys.Rows[i].Cells["fGAM_KOD"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_pre_kodn"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_SAN_KOD"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fGAM_SKA"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_pre_sum"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_pre_proc"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_nl_kod"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_obj_kod"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_ob2_kod"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_ob3_kod"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_ob4_kod"].Value + "', '"
                       + dataGridView_gaminys.Rows[i].Cells["fg_pre_gal"].Value + "');";
                        comm.CommandText = StrQuery_gamyba;
                        comm.ExecuteNonQuery();
                    }
                }
            }
0
102 / 24 / 12
Регистрация: 12.12.2013
Сообщений: 211
Записей в блоге: 1
25.09.2017, 12:07
Цитата Сообщение от vadca Посмотреть сообщение
ID_GAMYBA
Что представляет собой это поле? Это идентификатор? Первичный ключ?

Добавлено через 1 минуту
Цитата Сообщение от vadca Посмотреть сообщение
C#
1
for (int i = 0; i < dataGridView_gaminys.Rows.Count; i++) { StrQuery_gamyba = @"INSERT INTO gamyba1G (ID_GAMYBA, PRE_KOD,PRE_KODN,SAN_KOD,PRE_SKA, pre_sum, pre_proc, nl_kod, obj_kod, ob2_kod, ob3_kod, ob4_kod, pre_gal) VALUES ( " + ID_GAMYBA.Text + ", '" + dataGridView_gaminys.Rows[i].Cells["fGAM_KOD"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_pre_kodn"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_SAN_KOD"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fGAM_SKA"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_pre_sum"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_pre_proc"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_nl_kod"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_obj_kod"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_ob2_kod"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_ob3_kod"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_ob4_kod"].Value + "', '" + dataGridView_gaminys.Rows[i].Cells["fg_pre_gal"].Value + "');"; comm.CommandText = StrQuery_gamyba; comm.ExecuteNonQuery();
Не делайте так никогда, и не пишите такое.
0
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 109
25.09.2017, 20:43  [ТС]
Почему не делать ? Очень хорошо справляется с поставленой задачей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2017, 20:43
Помогаю со студенческими работами здесь

Не могу добавить данные в БД mysql - INSERT INTO
Доброй ночи, есть такая проблема есть такой ПХП код который отправляет в БД данные, но данные в бд не отправляются виной сему я полагая...

Не могу вставить datetime в datetime путем INSERT INTO SELECT
Добрый день! Думаю мой вопрос ламерский и находится где-то в FAQ, где я его не нашел. Мне нужно продублировать данные с одной...

Не могу вставить данные в бд
Доброго дня уважаемое сообщество. Суть проблемы такова. Пытаюсь создать класс для работы с бд. С подключением прошло все хорошо, но когда...

Не могу вставить данные в таблицу
делаю такой запрос mysql_query(&quot;INSERT INTO users ( `name`, `username`, `password`, `email`, `usertype`, `gid` ) VALUES ( 'test', 'test',...

Не могу вставить данные в StringGrid из файла
я смог сохранить данные StringGrid в файле procedure TForm1.N6Click(Sender: TObject); begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru