By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,146 Members | 1,631 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,146 IT Pros & Developers. It's quick & easy.

read from Excel worksheet into dataset

P: n/a
I have problem with my code I need to read from Excel worksheet into dataset
the problem is in this line oleda.Fill(ds). The data adapter should fill
dataSet with data from Excel worksheet but isn't doing so. Below is my

Imports System.Data.OleDb
Imports System.Data
Imports Oracle.DataAccess.Client

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim connString As String = "provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\employeetable.xls;Extended Properties=Excel 8.0;"
' Create the connection object

Dim oledbConn As OleDbConnection = New OleDbConnection(connString)

' Open connection

' Create OleDbCommand object and select data from worksheet Sheet1
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM
[Sheet1$]", oledbConn)

' Create new OleDbDataAdapter
Dim oleda As OleDbDataAdapter = New OleDbDataAdapter()

' Create a DataSet which will hold the data extracted from the
Dim ds As DataSet = New DataSet()

' Fill the DataSet from the data extracted from the worksheet.

' Close connection
End Try

'1.Create connection object to Oracle database
Dim con As OracleConnection = New OracleConnection()
'2.Specify connection string
con.ConnectionString = ("Data Source=dprod;User Id=mtr;

'3. Open the connection through ODP.NET
Catch ex As Exception
'4.display if any error occurs
MsgBox(ex.Message, Microsoft.VisualBasic.MsgBoxStyle.Exclamation,

'3.Create command object to perform a query against the database:

Dim cmdQuery As String = "SELECT * FROM employeetable"

' Create the OracleCommand object to work with select
Dim cmd As OracleCommand = New OracleCommand(cmdQuery)
cmd.Connection = con
cmd.CommandType = CommandType.Text

' Dispose OracleCommand object

' Close and Dispose OracleConnection object

End Try
End Sub
End Class

Jun 27 '08 #1
Share this Question
Share on Google+
1 Reply

P: n/a

Try it like this:

Imports System
Imports System.Data.OleDb

Public Class frmExcelStuff

Dim conOle As OleDbConnection
Dim daOle As OleDbDataAdapter, ds As DataSet

Private Sub frmExcelStuff2_Load(...) Handles MyBase.Load

conOle = New OleDbConnection
= "provider=Microsoft.Jet.OLEDB.4.0;data
source=C:\1A\test1.xls;Extended Properties=Excel 8.0"

daOle = New OleDbDataAdapter
daOle.SelectCommand = New OleDbCommand
daOle.SelectCommand.Connection = conOle

ds = New DataSet

End Sub

Private Sub btnReadFromExcel_Click(...) Handles ...

daOle.SelectCommand.CommandText = "Select * From [Sheet1$]"
daOle.Fill(ds, "tbl1")

'--this is a datagridview I added to the form
dgrv1.DataSource = ds.Tables("tbl1")
End Sub
End Class

Note: you should do a Sheet1.UsedRange.Select in Excel to see if there
are any empty rows/columns that are part of the sheet's used range. Go
into Tools/Macro/VisualBasic Editor -- add a code module and type

Sub xxxx()
End Sub

Then in Tools/Macros -- run the macro xxxx to select the Sheet's

You should delete these extra rows/columns and then save the Excel file.
Otherwise, you will import a bunch of empty rows/columns into your
dataset which could make it look like you are not retrieving any data.
The method above will import the entire UsedRange of the Excel Sheet.


*** Sent via Developersdex ***
Jun 27 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.