在ASP.net中将变量添加到字符串

时间:2010-08-05 14:45:11

标签: c# asp.net

好的,所以在VB中很容易,但我无法在C#中找到它:

SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM tblUsers WHERE username = '" & username & "'", cn);

抛出

 CS0019: Operator '&' cannot be applied to operands of type 'string' and 'string'

用Google搜索并找不到答案,请帮助这位新手!

7 个答案:

答案 0 :(得分:3)

使用+连接字符串。 &可以作为一元或二元运算符使用。

但是,正确答案是使用参数化查询!

您使用的方法受SQL injection攻击。

答案 1 :(得分:3)

你已经有六个(和计数)推荐使用+而不是&amp ;.但是,从长远来看,使用参数化查询而不是将变量直接连接到SQL语句中会更好。通过连接,特别是如果用户输入,您可以对SQL注入攻击敞开大门。通过使用参数,可以阻止SQL注入。

SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM tblUsers WHERE username = @user");
cmd.Parameters.AddWithValue("@user",  username);

答案 2 :(得分:2)

使用'+'代替'&'

答案 3 :(得分:2)

+是C#中的字符串连接运算符。

答案 4 :(得分:2)

使用“+”代替“&”

SqlCommand cmd = new SqlCommand(“SELECT COUNT(*)FROM tblUsers WHERE username ='”+ username +“'”,cn);

答案 5 :(得分:2)

使用+代替

'" + username + "'"

答案 6 :(得分:2)

我更喜欢这种东西的另一个选项是String.Format:

SqlCommand cmd = new SqlCommand(String.Format("SELECT COUNT(*) FROM tblUsers WHERE username = '{0}'",username ), cn);