在点按钮2的时候出现这个问题,怀疑是不是在加载窗体的时候已经打开链接,但是我也是有关闭,网上找了快一个星期了,实在没有办法,整页代码贴上,求大神指教。
Public Class CollectData
Dim mycon As Myconn = New Myconn() '调用SqlConnection的Myconn类实例化
Dim mycom As New SqlClient.SqlCommand
Dim dt As New DataTable()
Private Sub CollectData_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dt.Columns.Add("身份ID")
dt.Columns.Add("年")
dt.Columns.Add("月")
dt.Columns.Add("日")
dt.Columns.Add("时间")
dt.Columns.Add("设备号")
dt.Columns.Add("标准时间")
Dim myadapter As New SqlClient.SqlDataAdapter
Dim mytable As New DataTable
mycom.CommandText = "select * from kq_RecordRead"
mycom.Connection = mycon.conn
Try
mycon.conn.Open()
myadapter.SelectCommand = myCom
myadapter.Fill(mytable)
DataGridView2.DataSource = mytable
DataGridView2.Columns(0).HeaderText = "流水号"
DataGridView2.Columns(1).HeaderText = "名称"
DataGridView2.Columns(2).HeaderText = "开始位置"
DataGridView2.Columns(3).HeaderText = "截取长度"
DataGridView2.Columns(0).ReadOnly = True
DataGridView2.Columns(1).ReadOnly = True
Catch ex As Exception
MsgBox(ex.Message)
Finally
mycon.conn.Close()
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If DataGridView1.Rows.Count > 0 Then
Dim i As Integer
For i = 0 To DataGridView1.Rows.Count - 1
Dim a0 As String = DataGridView1.Rows(i).Cells(0).Value.ToString
Dim a1 As String = DataGridView1.Rows(i).Cells(5).Value.ToString
Dim a2 As String = DataGridView1.Rows(i).Cells(6).Value.ToString
mycom.CommandText = "insert into kq_record(orID,orIOtime,orMachine) values ('" & a0 & "',convert(datetime,'" & a2 & "'),'" & a1 & "')"
mycom.Connection = mycon.conn
Try
mycon.conn.Open()
Dim mysqlreader As SqlClient.SqlDataReader = mycom.ExecuteReader
mycom.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
mycon.conn.Close()
End Try
Next
End If
End Sub

------解决思路----------------------
datareader需要显式关闭的,不是command的问题,不过你弄reader干嘛?
------解决思路----------------------
dr.Closed()你这行可以直接删掉,因为你下面有executenonquery方法