C# 如何打破界限?
我有一句话:C# 如何打破界限?,c#,.net,visual-studio-2012,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
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键时,会得到一大串红线,表明我所做的被认为是错误的
那我怎么打破它呢?谢谢是的,因为常规字符串文本不能在源代码中包含换行符。您可以在逐字字符串文字中包含一个,但是: 或者使用字符串连接将其断开:
string sql = "SELECT FOO " +
"FROM BAR " +
"WHERE X=Y";
但是,更重要的是,您当前正在一个数据库中构建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())
{
...
}
}
是的,因为常规字符串文本不能在源代码中包含换行符。您可以在逐字字符串文字中包含一个,但是: 或者使用字符串连接将其断开:
string sql = "SELECT FOO " +
"FROM BAR " +
"WHERE X=Y";
但是,更重要的是,您当前正在一个数据库中构建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())
{
...
}
}
是的,因为常规字符串文本不能在源代码中包含换行符。您可以在逐字字符串文字中包含一个,但是: 或者使用字符串连接将其断开:
string sql = "SELECT FOO " +
"FROM BAR " +
"WHERE X=Y";
但是,更重要的是,您当前正在一个数据库中构建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())
{
...
}
}
是的,因为常规字符串文本不能在源代码中包含换行符。您可以在逐字字符串文字中包含一个,但是: 或者使用字符串连接将其断开:
string sql = "SELECT FOO " +
"FROM BAR " +
"WHERE X=Y";
但是,更重要的是,您当前正在一个数据库中构建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())
{
...
}
}
如果你把你的确切标题放在如何打破C线上?对于谷歌来说,第一个结果将是一个答案。下次在这里问之前,试着这样做。谢谢!…=选择registeruser_id+。。。然后在加号后按enter键顺便说一下,查找参数和sql注入。不要只是将一个sql字符串与用户输入连接起来。如果你把你的确切标题放在C行上,如何打断它?对于谷歌来说,第一个结果将是一个答案。下次在这里问之前,试着这样做。谢谢!…=选择registeruser_id+。。。然后在加号后按enter键顺便说一下,查找参数和sql注入。不要只是将一个sql字符串与用户输入连接起来。如果你把你的确切标题放在C行上,如何打断它?对于谷歌来说,第一个结果将是一个答案。下次在这里问之前,试着这样做。谢谢!…=选择registeruser_id+。。。然后在加号后按enter键顺便说一下,查找参数和sql注入。不要只是将一个sql字符串与用户输入连接起来。如果你把你的确切标题放在C行上,如何打断它?对于谷歌来说,第一个结果将是一个答案。下次在这里问之前,试着这样做。谢谢!…=选择registeruser_id+。。。然后在加号后按enter键顺便说一下,查找参数和sql注入。不要只是将sql字符串与用户输入连接起来。