我正试图防止将重复的数据插入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时,它仍然会插入到记录表中。 在此过程中发生了什么??
答案 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.
}