无法从DataTable中选择DataRow

时间:2019-11-01 03:56:11

标签: c# sql datatable datarow

我正试图防止将重复的数据插入MS Access表中,如下所示,

MS Access表(记录),其列为:Situation,Check_Item,并且表中没有数据。 来自DataSet的DataTable填充了查询"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插入到Record表中。 但是在第二次输入123456时,它仍然会插入到记录表中。 在此过程中发生了什么??

1 个答案:

答案 0 :(得分:1)

假设您的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的官方文档。