如果你能帮帮我,我的代码中有一个我无法理解的错误。
错误是:
描述:当前网络请求执行过程中出现未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:“登录”附近的语法不正确。
和我的代码:
public static void ChangePassword(string login, string password)
{
var sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
string query = @"update Organizer set Password ="+ password + "where Login=" + login + "";
SqlCommand cmd = new SqlCommand(query, sqlCon);
cmd.CommandType = CommandType.Text;
try
{
sqlCon.Open();
cmd.ExecuteNonQuery();
sqlCon.Close();
}
catch (Exception ee) { throw ee; }
}
最佳答案
- 我们已经看到足够多的 sql 注入(inject)攻击,我们不需要另一个,请修复您的代码并使用参数。
- 使用
using
block 来避免泄漏连接。 - 安装异常处理程序,如 ELMAH .
Don't save passwords in the database
using (var sqlCon = new SqlConnection(...)) { string query = @"update Organizer set Password =@password where Login=@login"; SqlCommand cmd = new SqlCommand(query, sqlCon); cmd.CommandType = CommandType.Text; cmd.Parameters.Add("@password", SqlDbType.VarChar, 8000); cmd.Parameters["@password"].Value = password; cmd.Parameters.Add("@login", SqlDbType.VarChar, 8000); cmd.Parameters["@login"].Value = login; sqlCon.Open(); cmd.ExecuteNonQuery(); sqlCon.Close();
关于c# - asp.net c# 中的 SQL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327781/