テキストファイルからNULL値をMSSQLに挿入する際に問題があります。 NULL値を数値に置き換えると問題なく動作します。 2列は、NULLを許可するように設定テキストファイルのINSERT INTO MSSQLにINTEGERのNULL値が含まれています
PublicationCaptionとPublicationNumberは
ここでテキストファイルの例である
1#DI#Dagensインダストリーの#435#358#2016年10月19日 2 #DN#Dagens Nyheter#NULL#359#2016-10-19
私はこの作業をするために何かを追加する必要があるコードでforeachループに何らかの問題があると思います。ここで
は、私はImは(入力文字列が正しくない形式を持っていた。PublicationNumber列に格納することができません。Int32型が期待されている。)取得デバッグ時に
public static DataTable Publication()
{
DataTable dtPublication = new DataTable();
dtPublication.Columns.AddRange(new DataColumn[6] { new DataColumn("ID", System.Type.GetType("System.Int32")),
new DataColumn("PublicationCode", System.Type.GetType("System.String")),
new DataColumn("PublicationCaption",System.Type.GetType("System.String")),
new DataColumn("PublicationNumber", System.Type.GetType("System.Int32")),
new DataColumn("ProductNumber", System.Type.GetType("System.Int32")),
new DataColumn("CreatedDate", System.Type.GetType("System.DateTime")),
});
for (int i = 0; i < dtPublication.Columns.Count; i++)
{
dtPublication.Columns[i].AllowDBNull = true;
}
string txtData = File.ReadAllText(@"C:\Publication2.txt", System.Text.Encoding.Default);
foreach (string row in txtData.Split('\n'))
{
if (!string.IsNullOrEmpty(row))
{
dtPublication.Rows.Add();
int i = 0;
foreach (string cell in row.Split('#'))
{
dtPublication.Rows[dtPublication.Rows.Count - 1][i] = cell;
i++;
}
}
}
return dtPublication;
}
を使用しているコードです。
私はこの問題を解決するためにいくつか助言が必要です。 お時間をいただきありがとうございます。
WORD NULLの代わりに文字列に空白があるとしたらどうなりますか? Like 1#DI#Dagens Industri#435#358#2016-10-19 2#DN#Dagens Nyheter ## 359#2016-10-19 – Whencesoever
もし 'int.Parse(cell)'を使うならば。一般的に、デバッガを使用します。それが失敗したときのセルの価値は何ですか? –
@ 入力文字列が不正な形式であったため、PublicationNumber列に<>を格納できませんType Int32が必要です) –