3

クエリを実行したいdbfファイルがあります。これは私のコードです (.net 4.0、C# Windows フォーム):

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 が null 値を受け入れない理由を知りたいです。

dbfがnullを受け入れることをどこで確認できますか? プログラムを使用して dbfs を読み取り、クエリを実行すると、dbf は null を受け入れます。ado.netを利用した場合のみ受け付けません。私の問題を解決してくれてありがとう

4

2 に答える 2

4

新しいコマンドを作成し、挿入する前に実行することができます。

OleDbCommand dbCmdNull = oconn.CreateCommand();
dbCmdNull.CommandText = "SET NULL OFF";
dbCmdNull.ExecuteNonQuery();
于 2012-06-28T07:37:39.197 に答える
1

null を受け入れないように列を設定できます。

Visual foxpro を使用している場合は、dbf を開き、[表示] > [テーブル デザイナー] に移動します。列のリストが表示されます。最後の列は、null を受け入れるかどうかを示します。

そこにNullのボタンがあります。それをオフにすると、列は null を受け入れなくなります。

これにより、ヌルを書き込まないことが保証されます。しかし、null がある場合は、それらをどこかに書き込んでいます。そのコードを修正する必要があります。

于 2012-06-28T07:48:42.163 に答える