Не удается выбрать DataRow из DataTable - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь предотвратить вставку дублированных данных в таблицу MS Access, как показано ниже,

Таблица MS Access (запись) со столбцами: ситуация, Check_Item и начинается без данных в таблице. DataTable из DataSet заполняется запросом "SELECT * FROM Record WHERE Situation = 'A'".

Затем я пытаюсь выполнить этот процесс,

DataRow = DataTable.Select("Check_Item = '"+InputTextBox.Text"'");
If (DataRow.Length == 0)
{
  Use OleDbCommand to insert InputTextBox.Text string to Check_Item of Record table.
}

Результат:

Первый раз ввести (например, 123456), поскольку в таблице нет данных, поэтому 123456 вставляется в таблицу записей. Но во второй раз введите 123456, затем он все равно будет вставлен в таблицу записей. Что произошло в этом процессе ??

1 Ответ

1 голос
/ 01 ноября 2019

Предполагая, что ваша DataTable переменная имеет имя table, что вы создали ее и правильно связали с базой данных MS Access:

DataRow[] rows = table.Select("Check_Item = '"+InputTextBox.Text"'"); //Selects all rows where the condition is met.
If (rows.Length == 0)
{
   //No row met the condition so create a new one and add it to the table.
   DataRow newRow = table.NewRow(); //Creates a new row with the same schema (columns) as the table.
   newRow["Check_Item"] = InputTextBox.Text; //Assigns the value.
   table.Rows.Add(newRow); //Adds the new row to the row collection of the table.
   table.AcceptChanges(); //Commits and persist the changes done to the table.
}

Обязательно отметьте this а также официальные документы для DataTable .

...