Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 从对象数组创建数据表_C# 4.0_Xls_Import From Excel - Fatal编程技术网

C# 4.0 从对象数组创建数据表

C# 4.0 从对象数组创建数据表,c#-4.0,xls,import-from-excel,C# 4.0,Xls,Import From Excel,我不确定我的方法是否正确,但我有一个c#方法,可以将excel表格加载到二维对象数组中。在这个数组中,项1,1-1,16包含头,然后2-1-2-16包含与这些头匹配的数据,从那里开始的x-1-x-16在中。我想把这个数组转换成一个数据表,这样最终我可以将它转换成一种格式,然后根据客户机的需要导入access或SQL server db。我尝试过使用下面的代码,但没有效果,但我有一种感觉,我是远离。在此方面的任何帮助都将不胜感激 private void ProcessObjects(object

我不确定我的方法是否正确,但我有一个c#方法,可以将excel表格加载到二维对象数组中。在这个数组中,项1,1-1,16包含头,然后2-1-2-16包含与这些头匹配的数据,从那里开始的x-1-x-16在中。我想把这个数组转换成一个数据表,这样最终我可以将它转换成一种格式,然后根据客户机的需要导入access或SQL server 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);
    }
}

您是否可能正在使用存储库模式(如亚音速或EF)或LinqToSql

您可以这样做(为了简单起见,使用LinqToSql):

List myList=valueArray.ToList().Skip([标题行]).ConvertAll(f=>Property1=f[0][转换语句的其余部分])
DataContext dc=新的DataContext();
dc.SomeType.InsertAllOnSubmit(myList);
dc.提交更改();

很抱歉,您不得不忍受我,我对LINQ to SQL一点也不熟悉。如果我理解这段代码,它将创建一个list valueArray,而不是我创建的对象数组?现在在skip部分,我假设[header rows]将替换为单元格范围(即skip(“A1:D16”)),但是convert语句其余部分的值是多少?现在我决定走另一条路,但我对学习LINQ方法非常感兴趣。我在回复中附上了新代码,请让我知道你的想法。
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();