2011-06-20 7 views
0

これについては正しいかどうかはわかりませんが、2次元オブジェクト配列にExcelシートを読み込むC#メソッドがあります。この配列項目1,1-1,16にはヘッダーがあり、2-1-2-16にはヘッダーと一致するデータが含まれています。これはx-1-x-16と同じです。これを有効にします配列をデータテーブルに格納して、最終的にはクライアントの必要に応じてアクセスまたはSQLサーバーdbにインポートする形式で格納できます。私は無駄に次のコードを使用しようとしましたが、私は離れていると感じています。これについての助力は非常に高く評価されるでしょう。オブジェクト配列からデータテーブルを作成する

private void ProcessObjects(object[,] valueArray) 
{ 
    DataTable holdingTable = new DataTable(); 
    DataRow holdingRow; 
    holdingTable.BeginLoadData(); 
    foreach(int row in valueArray) 
    { 
     holdingRow = holdingTable.LoadDataRow(valueArray[row], true); 
    } 
} 

答えて

0

(サブソニックやEFのような)リポジトリパターンを使用しているか、LinqToSqlを使用している可能性がありますか?

あなたは(簡単にするためLinqToSql)この操作を行うことができます:

List<SomeType> myList = valueArray.ToList().Skip([your header rows]).ConvertAll(f => Property1 = f[0] [the rest of your convert statement]) 
DataContext dc = new DataContext(); 

dc.SomeType.InsertAllOnSubmit(myList); 
dc.SubmitChanges(); 
+0

イム申し訳ありませんが、あなたは私と一緒に負担する必要があり、私はすべてのLINQ to SQLはとfamilliarないです。そのコードを理解していれば、作成したオブジェクト配列の代わりにvalueArrayリストを作成していますか?今スキップセクションでは、あなたのヘッダー行がセルの範囲(つまり、.Skip( "A1:D16"))に置き換えられると仮定していますが、残りのコンバートステートメントの値はどうなりますか?今私は別の方法をとることに決めましたが、私はこのLINQアプローチを学ぶことに非常に興味があります。私は返信で新しいコードを添付して、あなたの考えを私に教えてください。 – SSISPissesMeOff

関連する問題