我设法只插入1个值,这是我在数据库中插入的第一个值。 问题是,我在组合框中有多个值,但它只插入第一个。
这是我的代码:
Dim query1 As New OleDbCommand(" SELECT MembrosCompasso.BI, MembrosCompasso.Ano FROM Compasso INNER JOIN MembrosCompasso ON Compasso.idCompasso = MembrosCompasso.idCompasso WHERE BI=@BI ", con)
query1.Parameters.Add("@BI", OleDbType.VarChar).Value = BI.Text
Dim dr1 As OleDbDataReader = query1.ExecuteReader
Try
If dr1.HasRows Then
dr1.Read()
Ano.Items.Item.add(dr1("Ano"))
Else
MsgBox("Não exsitem registos!")
End If
Catch ex As Exception
' tratamento de erros
Finally
dr.Close()
con.Close()
End Try
答案 0 :(得分:0)
当您使用DataReader时,每次调用.Read
方法时当前位置都会前进一行,您不会通过一次调用获取阅读器中的所有记录。 Read
返回一个布尔值,告诉您它是否成功,以便您知道是否可以前进到下一条记录,因此您的代码应该更像:
...
If dr1.HasRows Then
'Loop around the reader until we run out of rows
While dr1.Read
'Add each rows' item to the combobox
Ano.Items.Item.add(dr1("Ano"))
End While
Else
...