私の動的に生成されたデータテーブルには、以下のフィールドId,Name,Mob1,Mob2
私のデータテーブルにこれがある場合、それは正常に挿入され、
Id Name Mob1 Mob2
1 acp 9994564564 9568848526
しかし、このようなときには、
Id Name Mob1 Mob2
1 acp 9994564564
The given value of type String from the data source cannot be converted to type decimal of the specified target column.
私はreadingt a csvファイルによって私のdatatableを生成し、
CSVReader reader = new CSVReader(CSVFile.PostedFile.InputStream);
string[] headers = reader.GetCSVLine();
DataTable dt = new DataTable();
foreach (string strHeader in headers)
{
dt.Columns.Add(strHeader);
}
string[] data;
while ((data = reader.GetCSVLine()) != null)
{
dt.Rows.Add(data);
}
どのようにC#でBulkCopyの間に数値フィールドにnull値を挿入するか提案
編集:
私はこのdt.Columns["Mob2"].AllowDBNull = true;
しかし、それは動作していないようです...
アプリケーションのどこか他の場所でエラーが発生していないと確信できますか?あなたのDataColumnがそれが10進値で文字列ではないことをどのくらい知っていても、あなたはDataTypeを定義していません。
とにかく、問題は文字列小数変換(is-nullの問題ではない)だから、2番目の行を読むときにemty文字列をnullではなく受け取ったと思います。あなたが呼び出す前に、彼らは空の文字列が含まれている場合はnullにあなたのデータ配列のフィールドを設定manullyしてみRows.Add