【问题标题】:check for uniqueness of employee id number检查员工身份证号码的唯一性
【发布时间】:2014-02-20 17:10:30
【问题描述】:

似乎无法弄清楚如何检查唯一的员工 ID 号。我知道验证必须在表单加载中进行,只是不知道如何去做。

Public Class Form1
  Dim filename As String
  Dim dataFile As System.IO.File
  Dim dataWrite As System.IO.StreamWriter

  ''LOADING AND WRITE TO TEXT DOCUMENT
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'asks user for file name 
    filename = InputBox("Enter output file name")
    If IO.File.Exists(filename) Then
      dataWrite = IO.File.AppendText(filename)
    Else
      MessageBox.Show("filename does not exist")
      filename = InputBox("Enter output file name")
      dataWrite = IO.File.CreateText(filename)
    End If
    cboDepart.Items.Add("Accounting")
    cboDepart.Items.Add("Administration")
    cboDepart.Items.Add("Marketing")
    cboDepart.Items.Add("MIS")
    cboDepart.Items.Add("Sales")
  End Sub
  '------

  Public EMPLOYEEIDS As String
  Dim employeeID1 As ServerData()
  Dim employeeID2 As ServerData()
  Dim reader As String = My.Computer.FileSystem.ReadAllText("servers.lst")
  Dim s() As String
  Dim Totalemployeeids As String = CStr(reader.Length)
  Dim x As Integer = 0
  Dim myArray As String() = reader.Split("|"c)
  For x = 1 To Totalemployeeids
    employeeID1(x).ServerName = myArray(0)
    employeeID2(x).IDname = myarray(0)

    Form1_load.ListBox1.Items.Add(Servers(x).ServerName)
    x += 1
  Next

  Structure ServerData
  End Structure
End Class

【问题讨论】:

  • 获得唯一 ID(无需数据库)的唯一方法是您拥有所有其他可用的 Emp ID。在您第一次保存新的 Emp 之前,您并不真正需要它。我个人不会在表单加载中完成所有的 IO。测试filename是否为String.Empty,第一次去保存,然后提示。

标签: vb.net validation unique


【解决方案1】:

您通常不要从客户端插入唯一 ID。相反,它由数据库服务器自动插入。有一种方法可以取回插入的 ID,如果您需要它进行显示(也可以作为成功插入记录的确认):

SELECT SCOPE_IDENTITY()

此答案中显示了一个示例:

在客户端,您需要实现除 ID 之外的所有内容的插入,在这种情况下,您不需要检查唯一性。不过,提交时可能会出现其他验证问题(唯一密钥违规、数据类型不匹配) - 确保您捕获异常并将它们适当地显示给用户。

【讨论】:

  • 我明白你在说什么。但是我的老师想要什么,当用户输入员工 ID 号时,我的程序应该能够识别该 ID 号是否已被使用并且不再可以输入。
  • 直接从我的作业表上复制更多内容。 - “如果输入的编号已经输入,则应弹出错误消息,并要求用户输入唯一的员工编号。”
  • @coderlisk:没关系 - 如果您正确捕获异常,它会告诉您类似的信息(不确定确切的措辞)。尝试一下。关于你的最后一句话,user should be required to enter a unique employee number
  • 还没有数据库……还没有!这门课的工作方式是互相建立起来的,所以是的,在路上它将有一个数据库。但我总是可以改变它。所以现在我正在寻找一个快速声明。这就是我遇到的麻烦。我会用什么?或者我会怎么写?
  • @coderlisk:取决于你目前拥有什么。命名内存结构,其中包含您的员工列表。
猜你喜欢
  • 1970-01-01
  • 2020-07-11
  • 2014-01-28
  • 2011-08-06
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-16
相关资源
最近更新 更多