C# 更换';使用\';在我程序中的所有文本框中

C# 更换';使用\';在我程序中的所有文本框中,c#,wpf,C#,Wpf,所以在我的整个程序中,我在不同的地方大概有50个左右的文本框。我知道如何用某物替换单个引号(在本例中为“->\”),但我认为一定有更好的方法来实现这一点,而不是遍历并为每个文本框添加特定代码。我必须这样做,因为当这些东西被发送到数据库时,如果有一个单引号,它会给出一个错误。是否有办法更改默认的文本框控件行为,以便程序中的所有文本框自动用\'替换所有单引号 编辑: 我一直在玩参数化代码,这就是我现在拥有的。从我的理解来看,语句字符串基本上与之前相同,但我知道在使用参数(我称之为@username)

所以在我的整个程序中,我在不同的地方大概有50个左右的文本框。我知道如何用某物替换单个引号(在本例中为“->\”),但我认为一定有更好的方法来实现这一点,而不是遍历并为每个文本框添加特定代码。我必须这样做,因为当这些东西被发送到数据库时,如果有一个单引号,它会给出一个错误。是否有办法更改默认的文本框控件行为,以便程序中的所有文本框自动用\'替换所有单引号

编辑:

我一直在玩参数化代码,这就是我现在拥有的。从我的理解来看,语句字符串基本上与之前相同,但我知道在使用参数(我称之为@username)时,使用变量“username”,然后创建了命令。然后在parameters.addwithvalue中,它用变量username中的任何内容替换参数username。不幸的是,这对我不起作用,我也不知道它有什么帮助,因为用户名仍然卡在命令中

编辑:发现问题,在语句中不需要在“@username”周围加单引号

因此,它应该是:

string statement = "select count(*) from users where username=@username";

不要使用连接来生成SQL查询。使用适当的工具。这将加快重复查询的速度,还将消除输入清理代码(例如用
\\
替换
'
)和SQL注入攻击。

U可以使用onKeyUp javascript函数或asp.net OnTextChanged事件创建将更改引号的函数。

您应该使用参数化查询,不仅要解决您的问题,还要减少SQL注入带来的风险。当您使用字符串连接来构建SQL查询时,您可以进行攻击。

我已经编辑了我的帖子,请您再看一遍。我不知道如何在这些评论中有效地发布代码,所以我只是把它放在那里。谢谢。你帮了我很多忙:没有问题。通过进行此更改,您消除了一大类安全漏洞。
string statement = "select count(*) from users where username=@username";