Большой Воронежский Форум
» Программирование>[C# + Firebird] АКА Жарптица в клетке - заполнение таблицы.
Мамед 18:17 17.04.2010
Приветствую тебя, читатель! Создаю тему в надежде разрулить вопрос. Только только осваиваю работу с БД. Для практики решил взять встраиваемую БД Firebird и пошарпить с ней.
Создаю консольник. Он должен создать бд, еси еще ее нет и в ней одну таблицу из 2 колонок: ArtID целочисленного типа + первичный ключ, чтобы был так сказать счетчиком отличающим строки в другой таблице и строковый Artist которая заполняется строками = названиям папок в каталоге с консольником. Так вот следующий код выдает ошибку:

Код:
//Создаем и заполняем первую таблицу
            dp.ExecuteNonQuery("CREATE TABLE First (ArtID SMALLINT, Artist varchar(50), CONSTRAINT PK_First PRIMARY KEY(ArtID));");
            Console.WriteLine("Создана первая таблица");

            Console.WriteLine("Заполнение первой таблицы...");
            DirectoryInfo[] grs = new DirectoryInfo(Application.StartupPath).GetDirectories();
            foreach(DirectoryInfo gr in grs)
            {
                dp.ExecuteNonQuery("INSERT INTO First(Artist) VALUES('" + gr.Name + "');");<<<СМ ОШИБКУ НИЖЕ>>>
                Console.WriteLine("Добавление записи " + gr.Name);
            }
            Console.WriteLine();
            Console.WriteLine("Первая таблица успешно заполнена");
            
            Console.ReadKey();
...
...
...

ниже метод, который использовался вверху
        //Executes commands such as SQL INSERT, DELETE, UPDATE, and SET statements.
        public int ExecuteNonQuery(string command)
        {
            FbCommand fcmd = new FbCommand(command, fc);
            return fcmd.ExecuteNonQuery(); <<<ТУТ ОШИБКА validation error for column ARTID, value "*** null ***>>>
        }
Ошибка возникает при заполнении таблицы. Создание происходит успешно. При этом читал ФАК от жарптицы и там указали в качестве причины либо то, что второй юзер юзает базу (не мой случай) либо транзакция еще не обновлена и в ячейках таблицы висят NULLки, а я присваивая не NULL значения получаю болтики. Пробовал создать и обновить транзакцию, не помогло.
В чем заключается моя ошибка и какие пути исправления существуют? [Ответ]
Romantik 18:36 17.04.2010
скобку забыл [Ответ]
Мамед 18:48 17.04.2010
Romantik, где именно? Можешь указать? Что-то я не понял. [Ответ]
alemiks 21:43 17.04.2010
ArtID вставить забыл [Ответ]
Вверх