2011-06-17 5 views
2

SQL Server 2005でXMLを使用してデータを挿入する必要があります。そのため、BackEndからdatatableを取得し、DataTableを次のように渡しました。SQL Serverに挿入する際に欠落しているXML要素になるデータテーブルのNULL値をどのように処理できますか?

 DataSet dsItem = new DataSet(); 
    DTItem.TableName = "ItemDetails"; //DTItem is the DataTable I got from the BackEnd 
    dsItem.Tables.Add(DTItem); 

私の問題は、いずれかの列にnull値が含まれている場合、XMLがそのNULL列を使用していない場合です。例:これは私のDataTableであると考えてください

ここでCustomerIDはnullです。トレースとビューを修正すると、DataTableはnullの代わりに空を表示します。 だから。私がDataTableを渡すとき、XMLはNull列を考慮しません。次のようになります。

<NewDataSet> 
    <ItemDetails> 
     <JobOrderID>4</JobOrderID> 
    </ItemDetails> 
</NewDataSet> 

これはCustomerIDを取得していないため、挿入が機能しません。なぜDataTableは列のフィールドにNull値を表示しないのですか?また、null値をXMLとして含むDataTableを渡す方法は? ご意見をお聞かせください。

+0

XMLで何をしたいですか? ''?これは、「NULL」とは異なります。文字列の場合、 '' ''になります。整数の場合、単純に無効になります。おそらく、XMLが与えられたデータに対して有効であるため、挿入ロジックの観点から、XMLではなく、問題を探求してください。 –

+0

@Anthony:Ok。私はnull値を含むDataTableをSqlサーバテーブルに一度に挿入したい。これを行う方法? – thevan

+0

私はあなたの質問を完全に理解しているかもしれませんが、多分DBNull.Valueをチェックするとあなたに役立つでしょうか –

答えて

0

私はちょうどnullの代わりに-1を割り当てることでこの問題を解決しました。私はこれが正しい解決策ではないことを知っていますが、私はこの方法を使って解決しました。