最近使用OLEDB编写一个mdb数据表录入程序小有心得,现总结如何:
一、.数据表及数据结构的填充
1.使用OLEDBConnection配合连接字符串进行数据库连接,连接字符串汇总如下: a.对于Excel 2007-2010的xlsx文件使用字符串: "provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;" + "data source=" + fileName + ";Extended Properties ='Excel 12.0 Xml;HDR=YES;IMEX=2'" b.对于Excel 2003的xls使用字符串: "provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" + "data source=" + fileName + ";Extended Properties = 'Excel 8.0;HDR=YES;IMEX=2'"; 其中HDR表示是否将首行视作标题行,IMEX=0表示导入(写) =1表示导出(只读) =2混合模式详见: http://www.cnblogs.com/windy2008/archive/2012/11/14/2769551.html c.对于Access的mdb使用字符串: "provider=Microsoft.JET.OLEDB.4.0;Persist Security Info=False;" + "data source=" + fileName;
2.数据表的填充
定义OLEDBDataAdapter进行填充,代码示例如下:
OleDbDataAdapter dataAdapter = sql.ExcuteSQLInMdb(command);
if (dataAdapter == null)
return false;
if (ds.Tables.Contains(tableName))
return false;
dataAdapter.Fill(ds, tableName); //填充表到DataSet中
dataAdapter.FillSchema(ds, SchemaType.Mapped, tableName); //填充表的元数据信息到DataSet中
3.数据表间关系的映射
从mdb中读取MSysRelationships表,该表保存了表间关系:
通过将上表各行转换成:DataRelation对象,再添加到DataSet中就完成了关系映射。