- A+
所属分类:.NET技术
第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中。
先上读取Excel文件的code如下。
public bool GetFiles(string equipName) { //choose all sheet? or all data in sheet? string strExcel = "select * from [Sheet1$]"; //初始化system.IO的配置(路径) DirectoryInfo directoryInfo1 = new DirectoryInfo(WPath + equipName + "\Working"); //用文件流来获取文件夹中所有文件,存放到 FileInfo[] files1 = directoryInfo1.GetFiles(); foreach (FileInfo file in files1) // Directory.GetFiles(srcFolder) { // 连接到excel 数据源, xlsx要用ACE string strConn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source= " + file.FullName + "; Extended Properties='Excel 12.0';"); OleDbConnection OledbConn = new OleDbConnection(strConn); if (IsUsed(file.FullName)) { flag = IsUsed(file.FullName); continue; } try { OledbConn.Open(); // 存入datatable OleDbDataAdapter dAdapter = new OleDbDataAdapter(strExcel, strConn);
//写入ds中的一个table dAdapter.Fill(ds); OledbConn.Dispose(); OledbConn.Close(); } catch (Exception ex) { } } }
foreach用于遍历所有Excel文件;
strExcel用于选择Excel文件中sheet的内容,select * 表示选取sheet中所有行和列;
strConn用于设置读取的方法,provider的设置很重要,ACE表示最新的.xlsx文件,jet 表示读取.xls文件,两者有点区别,DataSource表示文件名,包括路径。
OleDbDataAdapter 用于按(命令)去执行填充dataset的功能