上传文件并获取上传文件的绝对路径,拼到连接oledb数据库字符串中,
打开本地数据库链接(本地数据库链接字符串),定义插入sql语句字符串。
打开Excel链接,定义获取excel表中需要的数据的sql语句字符串,
数据适配器,数据集。
OLEDB对象用SQL语句SELECT读取EXCEL内容,详细代码可以百度,很多很多
一:占内存
因为要两次使用相同的数据源,所以用DataTable比较实用
把取到的EXCEL数据填充到DATASET对象。
FOR循环执行SQL INSERT语句,循环为:
for(int i=0;i<DataTable.Rows.Count;i++)
{
}
二:只读,不占内存
不用数据适配器,和数据集。
oledbDataReader reader=cmd.execReader();
while(reader.reader())
{
进行读取操作。
并且插入操作。
注意。最好定义一个方法传入参数来进行插入,不然会报异常,因为你是在只读的情况中读取数据,而不是对数据库进行本地操作。
}
三:excel好像自带导入到数据库中的功能
就这三个思路,我想应该都可以,可能是批量操作,最好在一个连接中一次性操作插入。
如果不能,还请多多指教,其他方法。
其实你只要把excel想成一个数据库就是了,每一页sheet1$就是它的一张表。
就好比是把一个数据库中的某些需要的数据导入到另一个数据库中的表中。
当然有两个字符串连接到不同的数据库和两个SqlCommand,OledbCommand,其实大同小异。
我的本本电脑没有MSOffice办公软件,我用的是WPS。好像不支持,所以不能敲代码了。 |