当前位置: 代码迷 >> VB Dotnet >> excle导入datagrid后.该如何处理
  详细解决方案

excle导入datagrid后.该如何处理

热度:29   发布时间:2016-04-25 02:12:08.0
excle导入datagrid后......
'excle 2007导入datagrid后显示数据:
                Dim fileName As String = ""
                fileName = FileUpload1.PostedFile.FileName
                Dim strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties=Excel 12.0"
                Dim mystrconn As New System.Data.OleDb.OleDbConnection(strConn)
                Dim mycommand As New System.Data.OleDb.OleDbCommand("SELECT * FROM [sheet1$]", mystrconn)
                Dim myadapter As New System.Data.OleDb.OleDbDataAdapter
                myadapter.SelectCommand = mycommand
                Dim dtset As New System.Data.DataSet()
                myadapter.Fill(dtset)
                DataGrid1.DataSource = dtset.Tables(0)
                DataGrid1.DataBind()
这是我写的一段VB.NET 代码,在服务器端访问是一切正常的,但在客户端访问时,myadapter.Fill(dtset)语句报错,不能正常访问,不知是什么原因?请教了!
------解决方案--------------------
应该是excel的版本不对吧。你用一样的excel试试呢?


------解决方案--------------------
是不是这个错误信息

“未在本地计算机上注册 MicroSoft.ACE.OLEDB.12.0 ”


是的话,请运行 AccessDatabaseEngine.EXE


------解决方案--------------------
fileName指定的文件路径是否正确。
------解决方案--------------------
根据你说的分析一下:
1 在服务器端访问是一切正常的,但在客户端访问时,myadapter.Fill(dtset)语句报错
2 如果在客户端和服务端分别建一个路径和文件名都相同,但数据内容不相同的excel,这时,在客户端访问服务器时,客户端可以访问,但它读进datagrid是服务器上的文件,而不是我输入选择的客户端路径上的文件。

很明显,myadapter用的是服务器上的文件,并没有用客户机的文件。所以你要找错误的地方是何处涉及到文件名?并且这个文件名的路径是什么,有时缺省路径是不是默认是服务器的路径?自己显式指定一下可不可以?
  相关解决方案