c# - asp.net c# 中的 SQL 错误

标签 c# asp.net sql

如果你能帮帮我,我的代码中有一个我无法理解的错误。

错误是:

描述:当前网络请求执行过程中出现未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息: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/

相关文章:

c# - 是否有任何框架或实用程序(在 .NET 空间中)用于从业务对象自动生成数据传输对象

用于更多 ConsoleColors 的 C# 库?

javascript - 如何在 asp :Radiobutton? 中调用 Javascript 函数

asp.net - aspnet 表 - 指定 TableCell 宽度?

MySQL 使用 JOIN 和 ORDER BY 进行更新

c# - 匹配 img 标签 url 的正则表达式

c# - Windows8 触摸自定义控件日期选择器时出现错误 "Layout cycle detected. Layout could not complete."

c# - 使用 ASPNETDB.MDF 添加到 c# asp.net 中的表

sql - 使用 tSQL 计算一行中不同列的数量

mysql - sql 计算两个值共享另一列中相同值的次数