我今天加入了C#Developer,这是我的第一篇文章。大家好!
我正在使用MS Access作为后端以及使用VS 2017作为前端的C#Win Form创建数据库。我在使用DELETE子句删除表中的行时遇到问题。
背景信息:
用户在名为Srch_Txtbx的文本框中输入搜索词,然后单击搜索按钮,其中将根据用户的搜索文本过滤我的DataGridView列表。因此,保留了具有用户搜索词的DataGridView内任何列中的任何行,而所有其他行均被过滤掉。然后,我在单独的临时表(原始副本)中删除不等于用户文本条目的行。顺便说一句,我正在使用原始表的副本(临时表),因为我正在基于文本框和组合框选择删除行。使用临时表使我可以基于其他组合框和文本框选择来过滤组合框,但是我遇到的问题是仅删除了类似于文本条目的行。
作为一个简单的例子:
用户输入搜索词:BIT-1000
我的DataGridView过滤器正确地显示仅对应于TAG_NAME列的一行。我的临时表应该完全相同,只显示一行包含TAG_NAME BIT-1000的行。相反,它会删除TAG_NAME以BIT开头的所有行,但保留BIT-1000行和TAG_NAME并非以BIT开头的所有其他行。请参阅下面的代码。我正在使用 <>操作员,但无法正常工作。我也尝试使用NOT LIKE代替<>那给我的结果和<>。我究竟做错了什么?
这是我的代码:
使用(OleDbCommand cmd = dbConn.CreateCommand())
{
dbConn.Open();
cmd.CommandText = "从[Temp_Tbl]删除" +
"WHERE [IO_CARD] <> '"+ Srch_Txtbx。文字+"'" +
" AND [PLC_PANEL] <> '"+ Srch_Txtbx。文字+"'" +
" AND [SLOT_NO] <> '"+ Srch_Txtbx。文字+"'" +
" AND [CHANNEL_NO] <> '"+ Srch_Txtbx。文字+"'" +
" AND [TAG_NAME] <> '"+ Srch_Txtbx。文字+"'";
cmd.Connection = dbConn;
cmd.ExecuteNonQuery();
dbConn.Close();
}
我正在使用MS Access作为后端以及使用VS 2017作为前端的C#Win Form创建数据库。我在使用DELETE子句删除表中的行时遇到问题。
背景信息:
用户在名为Srch_Txtbx的文本框中输入搜索词,然后单击搜索按钮,其中将根据用户的搜索文本过滤我的DataGridView列表。因此,保留了具有用户搜索词的DataGridView内任何列中的任何行,而所有其他行均被过滤掉。然后,我在单独的临时表(原始副本)中删除不等于用户文本条目的行。顺便说一句,我正在使用原始表的副本(临时表),因为我正在基于文本框和组合框选择删除行。使用临时表使我可以基于其他组合框和文本框选择来过滤组合框,但是我遇到的问题是仅删除了类似于文本条目的行。
作为一个简单的例子:
用户输入搜索词:BIT-1000
我的DataGridView过滤器正确地显示仅对应于TAG_NAME列的一行。我的临时表应该完全相同,只显示一行包含TAG_NAME BIT-1000的行。相反,它会删除TAG_NAME以BIT开头的所有行,但保留BIT-1000行和TAG_NAME并非以BIT开头的所有其他行。请参阅下面的代码。我正在使用 <>操作员,但无法正常工作。我也尝试使用NOT LIKE代替<>那给我的结果和<>。我究竟做错了什么?
这是我的代码:
使用(OleDbCommand cmd = dbConn.CreateCommand())
{
dbConn.Open();
cmd.CommandText = "从[Temp_Tbl]删除" +
"WHERE [IO_CARD] <> '"+ Srch_Txtbx。文字+"'" +
" AND [PLC_PANEL] <> '"+ Srch_Txtbx。文字+"'" +
" AND [SLOT_NO] <> '"+ Srch_Txtbx。文字+"'" +
" AND [CHANNEL_NO] <> '"+ Srch_Txtbx。文字+"'" +
" AND [TAG_NAME] <> '"+ Srch_Txtbx。文字+"'";
cmd.Connection = dbConn;
cmd.ExecuteNonQuery();
dbConn.Close();
}