撇号会导致查询问题

本文关键字:查询 问题 | 更新日期: 2023-09-27 18:00:58

当我为表的填充执行查询时,我只出现两次错误。特别是,当名称字段具有如下值时:

K'Ogladbach

现在,撇号导致了一个问题,因为查询将此命令解释为新值,而这是错误的。这是我在SQL中查询的结构:

string sql = @"insert into Team (name, code, shortName, squadMarketValue, 
                    crestUrl, link_self, link_fixtures, link_players, caption) 
                    values ('" + item.name + "', '" + item.code + "', '" +
                    item.shortName + "', '" + item.squadMarketValue + "', '" +
                    item.crestUrl + "', '" + item._links.self.href + "', '" +
                    item._links.fixtures.href + "', '" + item._links.players.href + "', '" + 
                    campionato + "')";

如何看到每个新值由CCD_ 1表示,因此,如果该值中存在" ' ",则这是一个问题,因为查询未能通过表填充。希望有一个解决方案。

撇号会导致查询问题

使用SQL参数化查询,而不是原始SQL。这将有助于防止SQL注入,并提供一个强大的解决方案。

SqlCommand command = new SqlCommand("INSERT INTO Team (name) VALUES (@name)", con);
command.Parameters.Add("@name", SqlDbType.NVarChar).Value = item.name;
// Add the rest of the parameters here
command.ExecuteNonQuery();  // Execute the command

SqlParamertalized查询是的最佳方法

您还可以将数据中的"替换为">
这不是双引号,而是两个单引号
例如K'Ogladbach到K'Ogradbach