关闭

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

标签: c#数据库excel
268人阅读 评论(0) 收藏 举报

做了一个将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,一行行添加,再导入时就没有了空行的问题。然后我又多添加了几行数据再删除,又出现了空行数据。所以问题就是你所看到的空行并没有数据,但是程序认为是有数据的。

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5206次
    • 积分:130
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条