如何打破一条线?

时间:2014-05-17 07:58:35

标签: c# .net visual-studio-2012

我有这一行:

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键时,我得到一大串红线表示我所做的被视为错误。

我如何打破呢?谢谢

1 个答案:

答案 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())
    {
        ...
    }
}