excel导入数据库的一点小问题

做了一个将EXCEL表格内容导入数据库的功能,但是在运行时出了点问题。

在导入第一张表时成功了,然后将第二张表再导入,报出“由于将在索引、主关键字、或关系中创建重复的值,请求对表的改变没有成功”的错误,而且数据库的表中多了一行内容全是空的数据。但是第二张表和第一张表中没有重复内容,所以错误其实是,导入时将EXCEL中的空行当做数据多次导入时报错了。

可是为什么,会将空行当做数据呢?

 string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + 
                "Data Source=" + fileName + ";" +                 
                "Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;'";    //各版本号很重要
 OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [sheet1$]", strConn);
 DataTable dt = new DataTable();  
 da.Fill(dt);
我是将EXCEL中表格存入DataTable,再将DataTable打入数据库。

可是第一张表导入时,并没有将空行也导进去,所以问题是在第二张表。

原来问题在于,我的第二张表是第一张表复制过去,然后删改了其中的数据得到的,所以看上去为空行的内容,程序也认为它是有数据的存入了DataTable中。

我重新建了张EXCEL,一行行添加,再导入时就没有了空行的问题。然后我又多添加了几行数据再删除,又出现了空行数据。所以问题就是你所看到的空行并没有数据,但是程序认为是有数据的。

所以为了避免这种问题,只要判断下数据是否为空就好,为空则不进行添加。

阅读更多
文章标签: c# 数据库 excel
上一篇C# SQL多条件查询拼接技巧
下一篇控件大小随窗口大小改变
想对作者说点什么? 我来说一句

Excel导入数据库

2011年08月19日 1.56MB 下载

DLL vierwer

2010年10月15日 78KB 下载

java web Excel导入数据库

2018年05月21日 11.93MB 下载

表格过滤器

2014年03月29日 15KB 下载

MDI窗体美化

2013年04月16日 164KB 下载

报刊订阅系统 C# 数据库

2013年07月03日 2.47MB 下载

java excel导入数据库

2013年07月20日 4KB 下载

没有更多推荐了,返回首页

关闭
关闭