Vb.net 在文本框旁边显示错误消息

Vb.net 在文本框旁边显示错误消息,vb.net,winforms,textbox,Vb.net,Winforms,Textbox,我只是想问一下,如果用户输入了一个已经存在的ID,如何在文本框旁边或附近显示错误消息。一旦用户输入了一个已经存在的ID,错误消息将出现在下一个文本框或文本框中,上面写着:“ID已经存在,请输入另一个ID” 我在向数据库插入数据时使用了以下代码: Private Function AddUser() If String.IsNullOrEmpty(txtID.Text) Then MsgBox("Please enter id") : Return False If String.IsNu

我只是想问一下,如果用户输入了一个已经存在的ID,如何在文本框旁边或附近显示错误消息。一旦用户输入了一个已经存在的ID,错误消息将出现在下一个文本框或文本框中,上面写着:“ID已经存在,请输入另一个ID”

我在向数据库插入数据时使用了以下代码:

Private Function AddUser() 


If String.IsNullOrEmpty(txtID.Text) Then MsgBox("Please enter id") : Return False
 If String.IsNullOrEmpty(txtFname.Text) Then MsgBox("Please enter firstname") : Return False


        Access.AddParam("@ID", txtID.Text)
        Access.AddParam("@Course", cbxCourse.SelectedItem)
        Access.AddParam("@Yr", cbxYear.SelectedItem)
        Access.AddParam("@Fname", txtFname.Text)
        Access.AddParam("@Lname", txtLname.Text)
        Access.AddParam("@Mname", txtMname.Text)

             Access.ExecQuery("INSERT INTO StudentInformation ( ID, Course, Yr, FirstName, LastName, MiddleName) ; ")

If Not String.IsNullOrEmpty(Access.Exception) Then MsgBox(Access.Exception) : Return False

        MsgBox("Student was added successfully.")
        Form1.RefreshGrid()
        Me.Close()

        Return True


End sub

似乎你真的在问代码中的两个问题

第一个问题是如何判断ID是否重复
第二个问题是如何显示错误消息

对于第一个问题,如果将ID设置为索引,则应该能够捕获异常(如果没有,则必须查询数据库以获取该ID)

第二,由于您使用winforms(与WPF相反),我发现在文本框旁边的表单上放置一个标签,并在该标签上设置一些属性效果相当好,并且只要您的项目没有变大,就很容易管理

Private Function AddUser() 

  If String.IsNullOrEmpty(txtID.Text) Then MsgBox("Please enter id") : Return False
  If String.IsNullOrEmpty(txtFname.Text) Then MsgBox("Please enter firstname") : Return False

  Access.AddParam("@ID", txtID.Text)
  Access.AddParam("@Course", cbxCourse.SelectedItem)
  Access.AddParam("@Yr", cbxYear.SelectedItem)
  Access.AddParam("@Fname", txtFname.Text)
  Access.AddParam("@Lname", txtLname.Text)
  Access.AddParam("@Mname", txtMname.Text)


  Access.ExecQuery("INSERT INTO StudentInformation ( ID, Course, Yr, FirstName, LastName, MiddleName) ; ")

  If Not String.IsNullOrEmpty(Access.Exception) Then 
     Label1.text = Access.Exception
     label1.visible = true 
     return false
  end if 

    MsgBox("Student was added successfully.")
    Form1.RefreshGrid()
    Me.Close()

    Return True


End sub

您应该将其分为两种方法:一种用于执行数据验证,另一种用于在数据验证后插入。您的代码将更易于阅读和管理。查看ErrorProvider以标记哪些控件有错误以及它是什么。您好,感谢您的回复。但是我想在用户输入一个重复的id后立即显示错误消息。你知道怎么做吗?谢谢,一旦用户输入新的ID,消息就会消失,您只需输入数据库。。。如果这是目标,那么您可能应该在文本框lose_Focus中执行一个数据库“select”(选择),文本框的名称是什么,它们放在ID中文本框的名称是TxtID