【210】通过OleDb读写Excel数据到DataTable
参考:C#通过OLEDB读写Excel2013显示到datagrid控件,修改数据集并更新excel2013
解决:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。(AccessDatabaseEngine.exe)
目录:
2. 代码实现
- OleDbConnection 类:表示与数据源的开放连接。
- OleDbConnection(String):使用指定的连接字符串初始化 OleDbConnection 类的新实例。
- ConnectionString:获取或设置用于打开数据库的字符串。 (上面构造函数的string)
12string
strCon =
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+
@"d:/成绩表2013.xlsx"
+
";Extended Properties='Excel 12.0;HDR=YES;IMEX=0'"
;
- Open:使用 ConnectionString 所指定的属性设置打开数据库连接。
- Close:关闭到数据源的连接。
- OleDbDataAdapter 类:表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
- OleDbDataAdapter():初始化 OleDbDataAdapter 类的新实例。
- OleDbDataAdapter(OleDbCommand):初始化 OleDbDataAdapter 类的新实例,用指定的 OleDbCommand 作为 SelectCommand 的属性。
- OleDbDataAdapter(String, OleDbConnection):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
- OleDbDataAdapter(String, String):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
- Fill(DataSet, String):在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。
1234567OleDbConnection myConn =
new
OleDbConnection(strCon);
string
strCom =
"SELECT * FROM [Sheet1$]"
;
myConn.Open();
OleDbDataAdapter myDataAdapter =
new
OleDbDataAdapter(strCom, myConn);
DataSet myDataSet =
new
DataSet();
myDataAdapter.Fill(myDataSet,
"[Sheet1$]"
);
myConn.Close();
- DateSet 类:表示数据的内存中缓存。(小数据量的适合用,一次将所有放入内存)
- DataTable 类:表示一个内存中数据表
代码实现:(默认将第一行设置为标题,表格内容从第二行开始计算)
1 2 3 4 5 6 7 8 9 10 11 | //扩展名是 xls 会出错,xlsx 就不会出错 string str_filename = @"D:\01-Working\综合业务平台数据\浮标\FB.xls" ; string strCon = String.Format( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'" , str_filename); //新建连接<br>OleDbConnection myConn = new OleDbConnection(strCon);<br>myConn.Open(); //新建SQL语句,获取 Sheet1 全部数据 string strCom = "SELECT * FROM [Sheet1$]" ;<br> //用于将数据添加到DataSet中 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn); DataSet myDataSet = new DataSet(); myDataAdapter.Fill(myDataSet, "[Sheet1$]" ); myConn.Close();<br> //初始化DataTable实例 DataTable dt = myDataSet.Tables[0]; |
posted on 2016-08-12 16:05 McDelfino 阅读(1247) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)