[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

VB.net Loop problem with executereader

Posted on 2009-04-08
2
Medium Priority
?
553 Views
Last Modified: 2013-11-27
I import a csv file into a dataset and then I want to take this information from this dataset and import it to my database. It runs over the first row but then it states:

"Error: System.Data: There is already an open DataReader associated with this Command which must be closed first"

I added cmdstudent.executereader.close() in the loop but it still does not work.

Any suggestions?
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
 
        Dim conn As SqlConnection
        Dim cmdStudent As New SqlCommand
        Dim cmdStudent1 As New SqlCommand
        Dim daStudent As New SqlDataAdapter
        Dim dsStudent As New DataSet
        Dim dtStudent As New DataTable
 
        Dim ds1 As New DataSet
        Dim sCon As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=Text;"
        Dim objConn As New OleDbConnection(sCon)
 
        objConn.Open()
 
        Dim objCmdSelect As New OleDbCommand("SELECT * FROM daily.csv", objConn)
 
        Dim objAdapter1 As New OleDbDataAdapter
 
        objAdapter1.SelectCommand = objCmdSelect
 
        objAdapter1.Fill(ds1, "daily")
 
        DGV1.DataSource = ds1.Tables(0).DefaultView()
 
        objConn.Close()
 
        Dim i As Integer
 
        Try
            conn = GetConnect()
            conn.Open()
 
 
            For i = 0 To (ds1.Tables(0).Rows.Count - 1)
                cmdStudent = conn.CreateCommand
                cmdStudent.CommandText = "INSERT INTO dailyrounds (date,name,price,no,url,high,highnum,mid,midnum,low,lownum)" & _
                   "VALUES ('" & Date.Today & "','" & _
                   ds1.Tables(0).Rows(i)("name") & "'," & _
                   ds1.Tables(0).Rows(i)("price") & "," & _
                   ds1.Tables(0).Rows(i)("no") & ",'" & _
                   ds1.Tables(0).Rows(i)("url") & "','" & _
                   ds1.Tables(0).Rows(i)("high") & "'," & _
                   ds1.Tables(0).Rows(i)("highnum") & ",'" & _
                   ds1.Tables(0).Rows(i)("mid") & "'," & _
                   ds1.Tables(0).Rows(i)("midnum") & ",'" & _
                   ds1.Tables(0).Rows(i)("low") & "'," & _
                   ds1.Tables(0).Rows(i)("lownum") & ") "
 
                cmdStudent.ExecuteReader.Read()
                cmdStudent.ExecuteReader.Close()
            Next i
 
            Refresh_Form()
            conn.Close()
 
        Catch ex As Exception
            MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OkOnly, "Connection Error !!")
        End Try
 
    End Sub

Open in new window

0
Comment
Question by:ralphcarter2008
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 16

Accepted Solution

by:
sunithnair earned 2000 total points
ID: 24099265
I think your line number 50 should be cmdStudent.ExecuteNonQuery() since you are trying to insert the values into a database table. ExecuteReader is just for reading the data and ExecuteNonQuery is used for DML queries.
0
 
LVL 1

Author Closing Comment

by:ralphcarter2008
ID: 31568123
Good catch!!
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Suggested Courses

650 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question