显示文本框旁边的错误消息

时间:2015-12-12 13:48:45

标签: 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.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

1 个答案:

答案 0 :(得分:0)

好像你真的问你的代码中的两个问题。

第一个是如何判断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