7

我有这个生物识别技术,但它给了我完全错误的输出——不同的用户 ID和 2132 年的验证日期

是什么导致了这样的错误信息?我在互联网上找不到任何类似的问题。有没有其他人遇到过和我一样的问题?


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

设备类型:访问控制


在此处输入图像描述

4

2 回答 2

4

这不是您应该构造 DateTime 对象的方式。尝试使用此构造函数构造 DateTime 对象,然后使用所需格式调用 ToString。如果失败,那么您可以排除:

newitem.SubItems.Add(New DateTime(idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond).ToString("yyyy-MM-dd hh:mm:ss"))

我还建议在构造 DateTime 对象时设置断点并检查 idwYear/Month/etc 的值。确保引用的变量具有预期值。

我仔细检查了这个方法的文档,看起来签名是正确的。我还建议检查您的变量是否被声明为整数变量(只是为了确定)。

于 2020-01-17T20:46:47.977 回答
-3

机器上的日期和时间一定是错误的。

于 2020-01-07T04:27:05.337 回答