Приветствую тебя, читатель! Создаю тему в надежде разрулить вопрос. Только только осваиваю работу с БД. Для практики решил взять встраиваемую БД 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 значения получаю болтики. Пробовал создать и обновить транзакцию, не помогло.
В чем заключается моя ошибка и какие пути исправления существуют?
[Ответ]