Vb.net错误,数据库中没有行大于0

编码器92

我正在制作一个使用sql服务器数据库的vb .net winform项目。用户在文本框中输入访问工厂的人员的详细信息(名字,姓氏,公司,联系电话等),单击“保存详细信息”按钮,这会将数据保存在数据表中。效果很好,问题出在下一部分。然后,将用户重定向到另一种表单,从数据库显示输入详细信息。这适用于第一个记录,但不适用于此后的任何记录输入,我收到一条错误消息,指出“在位置'n'处没有行”,并且以下代码行在form_Load中突出显示:

txtFirstName.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(1))

它告诉我,第0行之后没有任何行,但是我知道它们是因为我已经输入了它们,并且它们显示在sql server数据库管理器的数据表中。我无法解决此问题,对此将提供任何帮助。我将附加解决此问题的其余代码。先谢谢了。

Private Sub previousVisitor_Load(sender As Object, e As EventArgs) Handles MyBase.Load

connectionString = "Data Source=.\SQLExpress;InitialCatalog=Visitors;" & _
"IntegratedSecurity=True;MultipleActiveResultSets=True"

sqlVisitorDetails = "SELECT * FROM visitorDetails WHERE idNumber=@idNumber"

    sqlCon.Open()
    sqlCmd = New SqlCommand(sqlVisitorDetails, sqlCon)
    sqlCmd.Parameters.AddWithValue("@idNumber", txtIdNumber.Text)

    dtVisitorDetails = loadDtVisitorDetails()

    txtFirstName.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(1))
    txtLastName.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(2))
    txtCompany.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(3))
    txtContactNumber.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(4))
    txtCountryCode.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(5))
    txtEmail.Text = CStr(dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)).Item(7))

    sqlCmd.Dispose()
    sqlCon.Close()

End Sub

Private Function loadDtVisitorDetails() As DataTable
    Dim dtVisitorDetails As DataTable = Nothing

    sqlVisitorDetails = "SELECT * FROM visitorDetails WHERE idNumber=" & txtIdNumber.Text

    dtVisitorDetails = fillDtVisitorDetails(sqlVisitorDetails)

    Return dtVisitorDetails
End Function

Public Function fillDtVisitorDetails(ByVal sqlVisitorDetails As String) As DataTable

    Dim dtVisitorDetails As New DataTable
    Dim da As New SqlDataAdapter
    Dim conCmd As New SqlCommand

    conCmd.CommandText = sqlVisitorDetails

    da.SelectCommand = conCmd
    da.SelectCommand.Connection = sqlCon

    dtVisitorDetails.Columns.GetEnumerator()
    da.Fill(dtVisitorDetails)

    Return dtVisitorDetails
End Function
shree.pat18

由于每个唯一ID号只能有1行,因此当您搜索和过滤WHERE idNumber = ID Number in form为时,最多应获得1条记录。这意味着DataTable罐子最多只能有1行。

当你访问Rows一个的DataTable一样dt.Rows(ID),你想在位置号码访问该行ID的行的收藏。因此,当您dtVisitorDetails.Rows(CInt(CDbl(txtIdNumber.Text) - 1)对ID号大于1的任何值进行操作时,它将失败,因为该索引在表中根本不存在。

相反,您应该直接使用dtVisitorDetails.Rows(0)来访问该行。由于您已按ID Numberm进行了过滤,因此您只会获得该人的详细信息。最后,请记住为表中的行数添加检查,这样,如果您搜索没有记录的ID,尝试从表中检索就不会出错。

伪代码:

If dtVisitorDetails.Rows.Count > 0
 txtFirstName.Text = CStr(dtVisitorDetails.Rows(0).Item(1))
 ...
End If

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VB .NET 中的数据库访问失败(没有任何错误消息)

来自分类Dev

vb.net从数据库获取所有行

来自分类Dev

如何从我的数据库中获取所有列/行 [VB.Net/MariaDB]

来自分类Dev

显示 SQL 数据库中的特定数据,而没有要过滤的列。(VB.NET)

来自分类Dev

VB.NET数据集显示数据库行错误

来自分类Dev

vb.net的Oracle数据库错误

来自分类Dev

参数@Something没有默认值(Access数据库,Visual Studio VB.NET)

来自分类Dev

从vb.net中的数据库读取数据

来自分类Dev

带有VB> NET的可用SQL数据库列表

来自分类Dev

来自数据库的日期格式在vb.net中获得错误的日期

来自分类Dev

尝试在VB.net中设置范围时出现“ DBNull”错误。数据库是Excel

来自分类Dev

Vb.net数据库问题

来自分类Dev

Vb.net数据库问题

来自分类Dev

刷新数据库VB.NET

来自分类Dev

从VB.net的数据库中查找特定值

来自分类Dev

vb.net中的数据库问题

来自分类Dev

访问数据库中的 vb.net 搜索

来自分类Dev

vb.net插入数据以访问数据库

来自分类Dev

数据库未从 VB.NET 数据集更新

来自分类Dev

检查sql服务器数据库中是否存在一行,然后使用vb.net删除

来自分类Dev

如何在vb.net中显示数据库中的数据

来自分类Dev

Visual Studio中的VB.net-如何从数据库中检索特定数据?

来自分类Dev

VB Access数据库防止重复条目错误

来自分类Dev

验证文本框在vb.net中是否具有数值,并将其与数据库进行比较

来自分类Dev

VB.NET错误使用数据库字段填充二维数组

来自分类Dev

VB.NET数据库不在MS Access和登录错误

来自分类Dev

VB.NET错误使用数据库字段填充二维数组

来自分类Dev

从datagridViewComboboxColumn将键入的文本项添加到数据库后,vb.net错误

来自分类Dev

使用 MS ACCESS 数据库在 VB.net 上执行阅读器错误

Related 相关文章

  1. 1

    VB .NET 中的数据库访问失败(没有任何错误消息)

  2. 2

    vb.net从数据库获取所有行

  3. 3

    如何从我的数据库中获取所有列/行 [VB.Net/MariaDB]

  4. 4

    显示 SQL 数据库中的特定数据,而没有要过滤的列。(VB.NET)

  5. 5

    VB.NET数据集显示数据库行错误

  6. 6

    vb.net的Oracle数据库错误

  7. 7

    参数@Something没有默认值(Access数据库,Visual Studio VB.NET)

  8. 8

    从vb.net中的数据库读取数据

  9. 9

    带有VB> NET的可用SQL数据库列表

  10. 10

    来自数据库的日期格式在vb.net中获得错误的日期

  11. 11

    尝试在VB.net中设置范围时出现“ DBNull”错误。数据库是Excel

  12. 12

    Vb.net数据库问题

  13. 13

    Vb.net数据库问题

  14. 14

    刷新数据库VB.NET

  15. 15

    从VB.net的数据库中查找特定值

  16. 16

    vb.net中的数据库问题

  17. 17

    访问数据库中的 vb.net 搜索

  18. 18

    vb.net插入数据以访问数据库

  19. 19

    数据库未从 VB.NET 数据集更新

  20. 20

    检查sql服务器数据库中是否存在一行,然后使用vb.net删除

  21. 21

    如何在vb.net中显示数据库中的数据

  22. 22

    Visual Studio中的VB.net-如何从数据库中检索特定数据?

  23. 23

    VB Access数据库防止重复条目错误

  24. 24

    验证文本框在vb.net中是否具有数值,并将其与数据库进行比较

  25. 25

    VB.NET错误使用数据库字段填充二维数组

  26. 26

    VB.NET数据库不在MS Access和登录错误

  27. 27

    VB.NET错误使用数据库字段填充二维数组

  28. 28

    从datagridViewComboboxColumn将键入的文本项添加到数据库后,vb.net错误

  29. 29

    使用 MS ACCESS 数据库在 VB.net 上执行阅读器错误

热门标签

归档