2015-10-19 53 views
0

所以我有两个表:SQL删除加入ado.net

enter image description here

enter image description here

,我想从Kategoria-Adres,其中Kategoria-AdresID_Adres是一样的删除记录像ID_AdresAdres当我从列表框中选择一个项目。

string delete_string1 = "DELETE FROM Kategoria-Adres INNER JOIN Adres ON 
Kategoria-Adres.ID_Adres = Adres.ID_Adres WHERE Adres.Adres LIKE " 
+ listBox1_Selected_Item + " AND Adres.ID_Adres = Kategoria-Adres.ID_Adres"; 

我试过这个,但它不适用于我。

回答

1

它看起来像这个问题是在您的查询。

像这样的东西应该工作:

DELETE FROM Kategoria-Adres 
INNER JOIN [Adres] ON [Kategoria-Adres].[ID_Adres] = [Adres].[ID_Adres] 
WHERE [Adres].[Adres] LIKE '%" + listbox1.SelectedValue + "%' AND [Adres].[ID_Adres] = [Kategoria-Adres].[ID_Adres] 

作为一个侧面说明,你应该包括你的C#和ADO.Net代码在未来柜面你错过了从那里的东西,和错误代码。

+0

我正在尝试这个,这是一个有用的answear,但现在唯一的问题是我得到的错误:“关键字INNER附近的语法错误”。我在c的sql server中检查这个。 – Marox

+0

尝试删除顶部行中包含的括号。我编辑了答案来反映这一点。 – Paul

+0

嗯,它工作时,我做了“删除k从Kategoria-Adres AS k”。不知道为什么。无论如何,非常感谢你的帮助! – Marox

0

你LIKE子句缺少%

+0

我在看我的代码,我想我现在想念LIKE'“'',但%?我从列表框中选择项目,并将其放入选择更改事件的字符串中,因此我有我想在sql代码中使用的字符串,并删除另一个表中的记录,但具有相同的ID,如字符串的ID名称。 – Marox

+0

在这行代码上放置了一个断点,并向我们展示了字符串构建后的样子。 – bilpor