我有这个生物特征识别符,但是它给了我其他输出,例如用户名,并且验证日期为2132年。此错误信息的原因是什么?我在Google中找不到与此相同的问题。有没有人遇到过与我相同的问题?
C#代码:
if (axCZKEM1.ReadGeneralLogData(GetMachineNumber()))
{
while (axCZKEM1.SSR_GetGeneralLogData(GetMachineNumber(), out sdwEnrollNumber, out idwVerifyMode,
out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory
{
DataRow dr = dt_log.NewRow();
dr["User ID"] = sdwEnrollNumber;
dr["Verify Date"] = idwYear + "-" + idwMonth + "-" + idwDay + " " + idwHour + ":" + idwMinute + ":" + idwSecond;
dr["Verify Type"] = idwVerifyMode;
dr["Verify State"] = idwInOutMode;
dr["WorkCode"] = idwWorkcode;
dt_log.Rows.Add(dr);
}
ret = 1;
}
else
{
axCZKEM1.GetLastError(ref idwErrorCode);
ret = idwErrorCode;
if (idwErrorCode != 0)
{
lblOutputInfo.Items.Add("*Read attlog failed,ErrorCode: " + idwErrorCode.ToString());
}
else
{
lblOutputInfo.Items.Add("No data from terminal returns!");
}
}
VB.NET代码
If axCZKEM1.ReadGeneralLogData(iMachineNumber) Then
While axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, idwEnrollNumber, idwVerifyMode, idwInOutMode, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond, idwWorkCode)
Dim newitem As New ListViewItem()
newitem.Text = idwEnrollNumber.ToString()
newitem.SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString())
newitem.SubItems.Add(idwVerifyMode.ToString)
newitem.SubItems.Add(idwInOutMode.ToString)
newitem.SubItems.Add(idwWorkCode.ToString)
lvLogs.Items.Add(newitem)
End While
End If
设备型号:MA300
设备类型:访问控制
这不是应该构造DateTime对象的方式。尝试使用this constructor构造DateTime对象,然后以所需的格式调用ToString。如果失败,则可以排除:
newitem.SubItems.Add(New DateTime(idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond).ToString("yyyy-MM-dd hh:mm:ss"))
我还建议在构造DateTime对象时设置一个断点,并检查idwYear / Month / etc的值。确保引用的变量具有期望值。
我仔细检查了documentation for this method,看起来签名正确无误。我还建议检查您的变量是否声明为Integer变量(为了确定)。
机器上的日期和时间一定是错误的。