Vb.net 在MS access中从表中选择一个值
我正在为我的实验室编写一个程序。基于salesordernumer(SO nr),我需要从access中的表中找到相应的零件号,并将其放入变量(可能是字符串?)中。稍后,我需要从零件号中拆分不同的零件,但在此之前,我需要将其从MS表中取出。这是我现在使用的de代码,但我得到一个错误Vb.net 在MS access中从表中选择一个值,vb.net,ms-access,visual-studio-2013,Vb.net,Ms Access,Visual Studio 2013,我正在为我的实验室编写一个程序。基于salesordernumer(SO nr),我需要从access中的表中找到相应的零件号,并将其放入变量(可能是字符串?)中。稍后,我需要从零件号中拆分不同的零件,但在此之前,我需要将其从MS表中取出。这是我现在使用的de代码,但我得到一个错误 Private Sub BtnOphaal_Click(sender As Object, e As EventArgs) Handles BtnOphaal.Click If conn.State = C
Private Sub BtnOphaal_Click(sender As Object, e As EventArgs) Handles BtnOphaal.Click
If conn.State = ConnectionState.Open Then
Dim Sonr As String
Sonr = "SELECT *FROM prodvolg "
Dim SQL As New OleDb.OleDbCommand(Sonr, conn)
Dim DataAdapter As New OleDb.OleDbDataAdapter(SQL)
Dim datatabel As New DataTable("prodvolg")
DataAdapter.Fill(datatabel)
Dim queryString As String = "SELECT [pPart] AS Partnummer FROM [prodvolg] WHERE ([pSonr]='" & txtSOnummer.Text & "')"
Dim command As New OleDbCommand(queryString, conn)
Dim reader As OleDbDataReader = command.ExecuteReader()
While reader.Read()
txtppart.Text = (reader.GetString(1))
End While
reader.Close()
End If
End Sub
正如你所看到的,我只是一个初级程序员
错误发生在txtpart.Text=(reader.GetString(1))
错误消息:
A first chance exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll
附加信息:索引超出了数组的边界。
在学校,我在ADO系统学习编程,但未来似乎是oledb,但到目前为止我还不太了解oledb系统。如果有人能帮助我,我会很高兴的。
零件号可能如下所示:“CA-017630-6.35M-1/0-2”阵列从索引0开始,而不是从1开始。查询只返回一个字段
txtppart.Text = (reader.GetString(0))
另外,请记住,如果索引0处的行包含空值,则GetString可能会失败。
如果是这种情况,我建议使用
txtppart.Text = IF(reader.IsDBNull(0), string.Empty, reader.GetString(0))
您使用SQL语句只检索一个字段
pPart
,因此在DataReader上只有一个字段。尝试使用reader.GetString(0)
,因为数组从索引0开始对您来说也是一个TY!;-)