C# &引用;InvalidArgument=的值';1';对';无效;索引';。参数名称:index";,在显示第二个数据索引并将其插入数据库时发生
问候,,C# &引用;InvalidArgument=的值';1';对';无效;索引';。参数名称:index";,在显示第二个数据索引并将其插入数据库时发生,c#,mysql,database,indexing,C#,Mysql,Database,Indexing,问候,, 我有一个功能,可以从考勤机中提取数据,显示并存储在数据库中,然后从考勤机中删除数据,, 然后,当第二个索引数据显示并保存在数据库中时,出现了一个问题,错误如下: “InvalidArgument=值'1'对'index'无效。参数名称:index” 这是我的代码: private void RunThis(object source, ElapsedEventArgs e) { //Console.WriteLine("Print
我有一个功能,可以从考勤机中提取数据,显示并存储在数据库中,然后从考勤机中删除数据,,
然后,当第二个索引数据显示并保存在数据库中时,出现了一个问题,错误如下:
“InvalidArgument=值'1'对'index'无效。参数名称:index” 这是我的代码:
private void RunThis(object source, ElapsedEventArgs e)
{
//Console.WriteLine("Print this in every 10 seconds");
this.Invoke(new MethodInvoker(delegate ()
{
int idwErrorCode = 0;
string ip = txtIP.Text;
string sdwEnrollNumber = "";
int idwVerifyMode = 0;
int idwInOutMode = 0;
int idwYear = 0;
int idwMonth = 0;
int idwDay = 0;
int idwHour = 0;
int idwMinute = 0;
int idwSecond = 0;
int idwWorkcode = 0;
int iGLCount = 0;
int iIndex = 0;
string iNoData = "NO DATA";
string iError = "ERROR";
string iDel = "DATA DELETE";
Cursor = Cursors.WaitCursor;
//lvLogs.Items.Clear();
axCZKEM1.EnableDevice(iMachineNumber, false);//disable the device
if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory
{
while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, 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
{
if (iIndex >= 0)
{
lvLogs.Items.Clear();
iGLCount++;
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);//modify by Darcy on Nov.26 2009
lvLogs.Items[iIndex].SubItems.Add(ip.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwVerifyMode.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwInOutMode.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwWorkcode.ToString());
iIndex++;
try
{
//This is my connection string i have assigned the database file address path
string MyConnection2 = "datasource=192.168.10.3;Port=3306;Database=Log_absen;Uid=manager;Pwd=@Gl0b4l1nd0";
//This is my update query in which i am taking input from the user through windows forms and update the record.
//string Query = "insert into (dvc0005 set NIK='" + sEnrollNumber + "',Enroll='" + iYear + "' - '" + iMonth + "' - '" + iDay + "' where NIK='" + sEnrollNumber + "';)";
string NIK = sdwEnrollNumber;
string device = txtIP.Text.ToString();
string thn = idwYear.ToString();
string bln = (idwMonth < 10 ? '0' + idwMonth.ToString() : idwMonth.ToString());
string hr = (idwDay < 10 ? '0' + idwDay.ToString() : idwDay.ToString());
string jm = (idwHour < 10 ? '0' + idwHour.ToString() : idwHour.ToString()); ;
string mnt = (idwMinute < 10 ? '0' + idwMinute.ToString() : idwMinute.ToString()); ;
string dtk = (idwSecond < 10 ? '0' + idwSecond.ToString() : idwSecond.ToString()); ;
string tgl = thn + '-' + bln + '-' + hr + ' ' + jm + ':' + mnt + ':' + dtk;
string Query = "insert into logData_master(NIK,Enroll,deviceIP) value(@sEnrollNumber,@tgl,@ip)";
using (MySqlConnection conn = new MySqlConnection(MyConnection2))
{
using (MySqlCommand cmd = new MySqlCommand(Query, conn))
{
cmd.Parameters.AddWithValue("@sEnrollNumber", NIK);
cmd.Parameters.AddWithValue("@tgl", tgl);
cmd.Parameters.AddWithValue("@ip", device);
//cmd.Parameters.AddWithValue("@theText", theText);
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
else
{
Cursor = Cursors.Default;
axCZKEM1.GetLastError(ref idwErrorCode);
if (idwErrorCode != 0)
{
lvLogs.Items.Clear();
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(iError);
//MessageBox.Show("Reading data from terminal failed,ErrorCode: " + idwErrorCode.ToString(), "Error");
}
else
{
lvLogs.Items.Clear();
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(iNoData);
//MessageBox.Show("No data from terminal returns!", "Error");
}
}
axCZKEM1.EnableDevice(iMachineNumber, false);//disable the device
if (axCZKEM1.ClearGLog(iMachineNumber))
{
lvLogs.Items.Clear();
axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed
//MessageBox.Show("All att Logs have been cleared from teiminal!", "Success");
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(iNoData);
}
else
{
lvLogs.Items.Clear();
axCZKEM1.GetLastError(ref idwErrorCode);
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(iError);
//MessageBox.Show("Operation failed,ErrorCode=" + idwErrorCode.ToString(), "Error");
}
lvLogs.Items.Clear();
axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device
Cursor = Cursors.Default;
}));
}
private void RunThis(对象源,ElapsedEventArgs e)
{
//Console.WriteLine(“每10秒打印一次”);
this.Invoke(新的MethodInvoker(委托)()
{
int-idwErrorCode=0;
字符串ip=txtIP.Text;
字符串sdwEnrollNumber=“”;
int idwVerifyMode=0;
int idwInOutMode=0;
int-idwYear=0;
int idwMonth=0;
int idwDay=0;
int-idwHour=0;
int idwMinute=0;
int-idwSecond=0;
int idwWorkcode=0;
int-iGLCount=0;
国际指数=0;
string iNoData=“无数据”;
字符串iError=“ERROR”;
string iDel=“数据删除”;
Cursor=Cursors.WaitCursor;
//lvLogs.Items.Clear();
axCZKEM1.EnableDevice(iMachineNumber,false);//禁用设备
if(axCZKEM1.readgeneralloldata(iMachineNumber))//将所有考勤记录读取到内存中
{
而(axCZKEM1.SSR_GetGeneralLogicData)(iMachineNumber、out sdwEnrollNumber、out idwVerifyMode、,
out idwInOutMode、out idwYear、out idwMonth、out idwDay、out idwHour、out idwMinute、out idwssecond、ref idwWorkcode))//从内存中获取记录
{
如果(iIndex>=0)
{
lvLogs.Items.Clear();
iGLCount++;
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);//Darcy于2009年11月26日修改
lvLogs.Items[iIndex].SubItems.Add(ip.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwVerifyMode.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwInOutMode.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString()+“-”+idwMonth.ToString()+“-”+idwDay.ToString()+”+“+idwHour.ToString()+”:“+idwMinute.ToString()+”:“+idwssecond.ToString());
lvLogs.Items[iIndex].SubItems.Add(idwWorkcode.ToString());
iIndex++;
尝试
{
//这是我分配给数据库文件地址路径的连接字符串
string MyConnection2=“datasource=192.168.10.3;Port=3306;Database=Log\u absen;Uid=manager;Pwd=@Gl0b4l1nd0”;
//这是我的更新查询,在该查询中,我通过windows窗体从用户处获取输入并更新记录。
//string Query=“插入(dvc0005 set NIK=”“+sEnrollNumber+”,注册=“+iYear+”—“+iMonth+”—“+iDay+”,其中NIK=”“+sEnrollNumber+”;)”;
字符串NIK=sdwEnrollNumber;
字符串设备=txtIP.Text.ToString();
字符串thn=idwYear.ToString();
字符串bln=(idwMonth<10?'0'+idwMonth.ToString():idwMonth.ToString());
字符串hr=(idwDay<10?'0'+idwDay.ToString():idwDay.ToString());
字符串jm=(idwHour<10?'0'+idwHour.ToString():idwHour.ToString());
字符串mnt=(idwMinute<10?'0'+idwMinute.ToString():idwMinute.ToString());
字符串dtk=(IDWSSecond<10?'0'+IDWSSecond.ToString():IDWSSecond.ToString());
字符串tgl=thn+'-'+bln+'-'+hr+'+jm+':'+mnt+':'+dtk;
string Query=“插入到logData_主(NIK、Enroll、deviceIP)值(@sEnrollNumber、@tgl、@ip)”;
使用(MySqlConnection conn=newmysqlconnection(MyConnection2))
{
使用(MySqlCommand cmd=newmysqlcommand(Query,conn))
{
cmd.Parameters.AddWithValue(“@sEnrollNumber”,NIK);
cmd.Parameters.AddWithValue(“@tgl”,tgl);
cmd.Parameters.AddWithValue(“@ip”,设备);
//cmd.Parameters.AddWithValue(“@theText”,theText);
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
}
}
其他的
{
游标=游标。默认值;
axCZKEM1.GetLastError(参考idwErrorCode);
如果(idwErrorCode!=0)
{
L
lvLogs.Items.Clear();
iGLCount++;
lvLogs.Items.Add(iGLCount.ToString());
lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);