Как сохранить данные в таблице SQL Server, когда данные поступают из функции цикла while и отображаются в виде списка? - PullRequest
0 голосов
/ 30 января 2019

У меня есть такой цикл:

 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
{
    iGLCount++;

    lvLogs.Items.Add(iGLCount.ToString());
    lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);//modify by Darcy on Nov.26 2009
    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++;
}

Это покажет вывод в формате списка в виде семи столбцов.

Я хочу сохранить данные, возвращенные из цикла whileв таблице SQL Server.Что мне делать?

Я пробовал кодирование, как показано ниже, вне функции цикла, а также внутри

SqlDataAdapter _sqldataadapter = new SqlDataAdapter("insert into Record (sdwEnrollNumber,idwInOutMode,idwVerifyMode)values" +
                //    "('" + lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber) + "','" + lvLogs.Items[iIndex].SubItems.Add(idwInOutMode.ToString()) + "','" + lvLogs.Items[iIndex].SubItems.Add(idwVerifyMode.ToString()) + "')", con);

                //MessageBox.Show("Inserted successfully");
                //con.Close();

, но я не получаю данные в таблице.

Пожалуйста, помогите мне решить эту проблему

1 Ответ

0 голосов
/ 30 января 2019

Я не могу проверить функцию самостоятельно, потому что у меня нет определения таблицы, но с моей точки зрения:

Вы перебираете таблицу, используя iIndex в качестве номера индекса.Затем вы добавляете 1 к iIndex (iIndex++)

Так что, конечно, данные больше не могут быть доступны для индекса.Поэтому поместите ваш _sqldataadapter перед iIndex++.

Должно выглядеть так:

{
  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
        {
            iGLCount++;
            lvLogs.Items.Add(iGLCount.ToString());
            lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);//modify by Darcy on Nov.26 2009
            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());

SqlDataAdapter _sqldataadapter = new SqlDataAdapter("insert into Record (sdwEnrollNumber,idwInOutMode,idwVerifyMode)values" +
                //    "('" + lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber) + "','" + lvLogs.Items[iIndex].SubItems.Add(idwInOutMode.ToString()) + "','" + lvLogs.Items[iIndex].SubItems.Add(idwVerifyMode.ToString()) + "')", con);

                //MessageBox.Show("Inserted sucessfully");
                //con.Close();


            iIndex++;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...