C# 当不是每个查询都与我的单击事件一起工作时

C# 当不是每个查询都与我的单击事件一起工作时,c#,mysql,sql,C#,Mysql,Sql,我的“问题”表包含树视图中使用的类别 类别在层次视图中列出,如本例所示 * Test 1 * Test 2 * Test 3 * Test 4 * Test 5 * Test 6 这存储在表中,作为 类别识别码 类别(u)重选 类别\完整路径 类别\父ID 1. 测试1 测试1 2. 测试2 测试1\测试2 1. 3. 测试3 测试1\测试3 1. 4. 测试4 测试1\Test3\test4 3. 5. 测试5 测试1\Test3\te

我的“问题”表包含树视图中使用的类别

类别在层次视图中列出,如本例所示

* Test 1
    * Test 2
    * Test 3
        * Test 4
        * Test 5
    * Test 6
这存储在表中,作为

类别识别码 类别(u)重选 类别\完整路径 类别\父ID 1. 测试1 测试1 2. 测试2 测试1\测试2 1. 3. 测试3 测试1\测试3 1. 4. 测试4 测试1\Test3\test4 3. 5. 测试5 测试1\Test3\test4 3. 6. 测试6 测试1\测试6 1.
请在执行以下行后调试并检查SqlCommandString的值

dbConnection.SqlCommandString = " WHERE category_Fullpath LIKE '%" + valueFullpath.Text.Replace("\\", "\\\\") + dialogCategory.diaLogCategoryValue + "%';";

请同时检查测试1和测试2的类别_完整路径。它显示的不是“Test 1\Test 2”,而是“Test 1\Test2”。

在@kazi mohammad ali nur的帮助下,我在代码中发现了错误

最初,我在我的琴弦上加了额外的后格,因为在我的全路上
dbConnection.SqlCommandString=“WHERE category\u完整路径,如“%”+valueFullpath.Text.Replace(“\\”,“\\\”)+dialogCategory.diaLogCategoryValue+“%”

有些人质疑是否需要4个反斜杠,但我甚至需要8个反斜杠才能让它起作用


dbConnection.SqlCommandString=“WHERE category\u Fullpath LIKE%”+valueFullpath.Text.Replace(“\\”、“\\\”)+dialogCategory.diaLogCategoryValue+“%”

这个类是什么
数据库
它来自哪里?为什么不使用参数化查询呢?我认为递归函数是最好的解决方案。使用它并删除所有子项。为什么您的数据存储为
Test1\Test3
,而查询显示
如“%Test1\\Test3%”?(在'3'之前有一个额外的空间)!@charlieface,我在与应用程序相同的命名空间中创建了数据库类。我通过WPF页面上的按钮调用click事件。我删除了参数,因为我不确定这是否是导致我的问题的原因。当它再次工作时,我会将它们放在适当的位置。不确定替换(“\\”,“\\\”)
的意义是什么,无法理解为什么需要itI调试结果,它显示了预期的结果,我甚至复制了结果并在HeidiSQL中执行了它,我的类别也被删除了。请调试SqlCmdUpdate的值。并粘贴到此处结果CommandText是
DELETE FROM modelbuilder.categories,其中category_Fullpath类似“%Gereedschap\\Elektrisch\\Test1%”这些当然是我在实际类别中使用的字符串,因此,我认为我看到了这里的问题,是Gereedschap和Electrisch而不是Test1和Test2。在我的主窗口中,我将“\\\”替换为“\\\”,但在这里,甚至在我将字符串传递到数据库连接之前,四个反斜杠中的两个已经被去除了。我把主窗口中的两个反斜杠改为8,而不是4,这样很好。祝你好运。调试是最好的选择。你的努力值得投票表决。