вставка в файл dbf не принимает нулевые значения

У меня есть файл dbf, который я хочу выполнить. Это мой код (.net 4.0, С# Windows Forms):

oconn.ConnectionString = "Provider=vfpoledb.1;Data Source=" + path + ";Collating Sequence=machine";
oconn.Open();
OleDbCommand ocmd = oconn.CreateCommand();
string na = TBNazwaKonta.Text.Replace("\n","");
na = na.Replace("\r","") ;
string ks2 = ks.Replace("\n","");
ks2 = ks2.Replace("\r", "");
string zapytanie = @"insert into " + path + " (rk, Na,Ks,Ss,So,Wyr,Bw,Bm,Ow,Om,Wm,Mm,Pm,Pw,Ks1,Ks2,Ks3,Ks4,Llx,Wn01,Ma01,L01,Wn02,Ma02,L02,Wn03,Ma03,L03,Wn04,Ma04,L04,Wn05,Ma05,L05,Wn06,Ma06,L06,Wn07,Ma07,L07,Wn08,Ma08,L08,Wn09,Ma09,L09,Wn10,Ma10,L10,Wn11,Ma11,L11,Wn12,Ma12,L12) values (0,'Z-Dz PROD.OPAKOWAŃKIEWICZA 108   38-200 ', '200 02 000212',0,0,'',0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,'','','','',0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0,0.0,0.0,0)";
ocmd.CommandText = zapytanie;
ocmd.ExecuteNonQuery();
oconn.Close();

Соединение в порядке, запрос на вставку тоже в порядке, но я хочу знать, почему этот dbf не принимает нулевые значения.

Где я могу проверить, что dbf принимает нули? Когда я использую программу для чтения dbfs и выполняю запрос, dbf принимает значение null. Это не принимается только тогда, когда я использую ado.net. Спасибо за любую помощь в решении моей проблемы


person BKl    schedule 28.06.2012    source источник
comment
Некоторые из столбцов не принимают NULL? Не отвечает без определения таблицы. Также добавьте точное сообщение об ошибке + трассировка стека.   -  person Henk Holterman    schedule 28.06.2012


Ответы (2)


Вы можете создать новую команду и выполнить ее перед вставкой.

OleDbCommand dbCmdNull = oconn.CreateCommand();
dbCmdNull.CommandText = "SET NULL OFF";
dbCmdNull.ExecuteNonQuery();
person Habib    schedule 28.06.2012
comment
Благодарю вас! Это именно то, чего я хочу. Теперь он работает хорошо! Спасибо за очень быстрый ответ! - person BKl; 28.06.2012

Вы можете настроить свои столбцы так, чтобы они не принимали значения NULL.

Если вы используете визуальный foxpro, откройте свой dbf, перейдите в «Просмотр»> «Дизайнер таблиц». Вы увидите список столбцов, последний столбец указывает, принимает ли он нули.

Там есть кнопка для Null. Снимите этот флажок, и ваши столбцы не будут принимать значения NULL.

Это гарантирует, что вы не напишете нули. Но если есть нули, вы их где-то пишете. Вам придется исправить этот кусок кода.

person nunespascal    schedule 28.06.2012