我有这一行:
cmd.CommandText = "SELECT registeruser_id,registeruser_username, registeruser_email,registeruser_password FROM TestDB_RegisterUser where registeruser_email='" + email + "' and registeruser_password='" + pwd + "' and registeruser_rowstate<3 ";
当我尝试在字符串的一部分上按Enter键时,我得到一大串红线表示我所做的被视为错误。
我如何打破呢?谢谢
答案 0 :(得分:3)
是的,因为常规字符串文字不能在源代码中包含换行符。您可以在逐字字符串文字中包含一个:
string sql = @"SELECT FOO
FROM BAR
WHERE X=Y";
或者用字符串连接打破它:
string sql = "SELECT FOO " +
"FROM BAR " +
"WHERE X=Y";
但更重要的是,您目前正在horribly insecure way中构建SQL。 从不直接在SQL中包含值。而是使用参数化SQL ,然后指定参数的值:
string sql = "SELECT FOO FROM BAR WHERE X=@X";
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.Add("@X", SqlDbType.NVarChar).Value = "...";
using (var reader = command.ExecuteReader())
{
...
}
}