質問: "table"; bcp.WriteToServer(csv); } ``` テーブル定義: ``` CREATE TABLE [beata].[T_FeatureInstance]( [FeatureInstanceId] [uniqueidentifier] NOT NULL, [FeatureInstanceParentId] [uniqueidentifier] NULL, [FeatureTypeAliasId] [uniqueidentifier] NOT NULL, Uuid] [varchar NOT NULL, VersionId] [varchar NOT NULL, SkapadAv] [varchar NULL, [Skapad] [datetime] NOT NULL, UppdateradAv] [varchar NOT NULL, [Uppdaterad] [datetime] NOT NULL, [Gs] [uniqueidentifier] NOT NULL, ```
回答: 問題は、 `{DCAD82A9-32EC-4351-BEDC-2F8291B40AB3},,{ca91e768-072d-4e30-aaf1-bfe32c24008f}`の空の列が`NULL`ではなく`''`として解釈されていることです。私はローカルデータベースで`INSERT STATEMENT`を試しましたが、 `''`代わりに`NULL`を指定したときにエラーが発生しました。 ``` Conversion failed when converting date and/or time from character string. ``` これは、SQLではミリ秒単位で3桁の10進精度しか許されないためです。だから`'2011-04-29 02:54:15.380000000'`から`'2011-04-29 02:54:15.380'`に`'2011-04-29 02:54:15.380'` 。 上述したようにそれを行う1つの方法は次のようになり、ここでまた、あなたは価値がCsvReader.GetValueでString.Emptyを(int型)の関数であるときDBNULLを返すためにCsvReaderコードを変更することができます。 ここを見てください