/// <summary>
/// EXCEL二维数组转DataTable
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public static DataTable ToDataTable(object[,] arr)
{
DataTable dt = new DataTable();
for (int i = 0; i < arr.GetLength(1); i++)
dt.Columns.Add(i.ToString(), typeof(object));
for (int i = 0; i < arr.GetLength(0); i++)
{
DataRow dr = dt.NewRow();
for (int j = 0; j < arr.GetLength(1); j++)
{
dr[j.ToString()] = arr[i + 1, j + 1];
}
dt.Rows.Add(dr);
}
return dt;
}
private void button1_Click(object sender, EventArgs e)
{
string tableName = "ZDMX";
string path = @"C:\Users\Administrator\Desktop\xxx";
CpmVars myVar = new CpmVars(tableName, path);
BigData bd = new BigData(); bd.ConfigByVar(myVar); bd.InitDataTable();
bd.ArrData = ToArray(MyCommon.ConvertXmlToDataTable(MyCommon.ReadXmlStringFromFile("sht.xml", "", "d:\\log")));
BigDataToSqlServer b2s = new BigDataToSqlServer();
b2s.ConnectionString = myVar.Sqc.ConnectString;
b2s.TableName = tableName;
int importedCount = bd.WriteDataTableFromArray();
b2s.DtData = bd.DtData; b2s.CopyToServer();
/*
string excelFileName = @"C:\Users\Administrator\Desktop\xxx\xxx.xlsx";
Excel.Application app = new Excel.Application();
app.Visible = true; app.DisplayAlerts = false;
Excel.Workbook wb = app.Workbooks.Open(Filename: excelFileName, ReadOnly: true);
Excel.Worksheet sht = wb.Worksheets[1];
MyCommon.ExecuteSql("truncate table " + tableName, myVar.Sqc.ConnectString);
int importedCount = EUtil.ImportData(sht, myVar, tableName);
DataTable dt = ToDataTable(sht.UsedRange.Value2);
dt.TableName = "sht";
MyCommon.WriteToFile(MyCommon.ConvertDataTableToXml(dt), "sht",0, "d:\\log");
app.Quit();
*/
MessageBox.Show(
string.Format("导入{0}条记录。", importedCount)
, "导入结果");
}