Проблема с методом DataTable.Select - PullRequest
1 голос
/ 28 июня 2010

У меня есть строки в массиве String, а мои данные - в таблице данных.

Что мне нужно сделать, так это выбрать одну строку с помощью метода datatable.select (string) и удалить ее из таблицы данных.

это то, что я делаю, и оно работает нормально много раз, но возвращает ошибку, если я часто меняю массив.Я проверил данные в таблице данных, а также соответствующую строку.они там, как и должно быть.Но иногда все равно возвращается ноль.Но когда я проверяю, данные в точности такие, как я хочу.

             for (int k = 0; k < p; k++)
                {
                    string tempMapString = "ID =" + IDArray[k];
                  try
                    {
                        DataRow[] rows = myTable_2_ForCBL.Select(tempMapString);

                        //MessageBox.Show(IDArray[k].ToString(), "ID Array Element");
                        MessageBox.Show(tempMapString + "  " + rows.Length.ToString(), "No of Rows mapped are:");



                        if (rows.Length > 0)
                        {
                            foreach (DataRow row in rows)
                            {
                                row.Delete();
                            }
                        }
                    }
                    catch (Exception err2)
                    {
                        MessageBox.Show(err2.Message);
                    }

                }

Дайте мне знать, если я что-то упустил.Там столбцы в datatable являются "ID" и "LocationName".Идентификатор аналогичен первичному ключу и является значимым элементом списка флажков.

1 Ответ

3 голосов
/ 28 июня 2010

Я получил ответ.Это глупая ошибка, которую Microsoft игнорировала в своей документации.

вам нужно поставить одинарную кавычку (') для строки.поэтому строка будет

DataTable1.Select("ID= '"+tempstring+"'");

...