参数化 SQL 查询 C#

Paramaterized SQL Query C#

这是我写的一个简单查询。将其参数化以防止 SQL 注入的最佳方法是什么?

string selectQuery = "select [ID] from [myDB].[dbo].[myTable] where [myName] = '" +  user.globalUserName + "'";

你可以使用@定义一个参数,像这样:

string selectQuery = "select [ID] from [myDB].[dbo].[myTable] where [myName] = @username;";

然后你可以使用Command.Parameters函数定义参数,像这样:

cmd.Parameters.Add("@username", SqlDbType.VarChar);
cmd.Parameters["@username"].Value = user.globalusername;

或者像这样:

cmd.Parameters.AddWithValue("@Username", user.globalusername);