2012-06-28 2 views
3

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

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 принимает значения NULL? Когда я использую программу для чтения dbfs, и я выполняю запрос, dbf принимает значение null. Это не принимается, только когда я использую ado.net. Спасибо за помощь в решении моей проблемы

+0

Некоторые столбцы не принимают NULL? Не отвечает без определения таблицы. Также добавьте точную ошибку msg + trace. –

ответ

4

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

OleDbCommand dbCmdNull = oconn.CreateCommand(); 
dbCmdNull.CommandText = "SET NULL OFF"; 
dbCmdNull.ExecuteNonQuery(); 
+0

Спасибо! Это именно то, чего я хочу. Теперь он работает хорошо !. Спасибо за очень быстрый ответ! – BKl

1

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

Если вы используете visual foxpro, откройте свой dbf, перейдите в View> Table Designer Вы увидите список столбцов, последний столбец указывает, принимает ли он значения null.

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

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