修改密码页面代码-passEdit.aspx.cs//验证原密码是否正确
        StringBuilder strSql = new StringBuilder();
        strSql.Append("select UserID From Myuser where ");
        strSql.Append("Username=@username and UserPass=@userpass");
        SqlParameter[] param = {
            new SqlParameter("@username",SqlDbType.VarChar,200),
            new SqlParameter("@userpass",SqlDbType.VarChar,200)
        };
        param[0].Value = Session["adminName"].ToString().Trim();
        param[1].Value = pass1;        //Response.Write(strSql.ToString());
        //Response.End();
        int Rows = db.ExecuteSql(strSql.ToString(), param);//-----db.cs文件里面的过程
        if (Rows < 1)
        {
            Response.Write(Rows);
            Response.End();
            process.errMsg("原密码错误", "");
            return;
        }
db.cs文件public static int ExecuteSql(string sql, params SqlParameter[] cmdPara)
    {
        openConn();
        try
        {
            parames(conn,cmd, sql, cmdPara);//parames过程在下面一段代码中
            int rows = cmd.ExecuteNonQuery();
            //cmd.Parameters.Clear();
            return rows;
        }
        catch (Exception e)
        {
            throw new Exception(e.Message);
        }
    }
public static void parames(SqlConnection con,SqlCommand cd,string sql,SqlParameter[] cmdParames)
    {
        cd.CommandText = sql;
        cd.CommandType = CommandType.Text;
        cd.Connection = con;
        cd.Parameters.Clear();
        foreach (SqlParameter parameter in cmdParames)
            cd.Parameters.Add(parameter);
    
    }
就算在param[0].Value 处手工赋值,值跟数据库里面的一样,查询时返回的都是-1,cmd.ExecuteNonQuery();不是返回影响的行数吗?按理说应该是1才好,不知哪里错了。谢谢大家了。祝大家新年快乐。

解决方案 »

  1.   

    public static int ExecuteSql(string sql, params SqlParameter[] cmdPara)
        {
            openConn();
            try
            {
                DbCommand cmd1=parames(conn,cmd, sql, cmdPara);//parames过程在下面一段代码中
                int rows = cmd1.ExecuteNonQuery();
                //cmd.Parameters.Clear();
                return rows;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }C# codepublic static DbCommand parames(SqlConnection con,SqlCommand cd,string sql,SqlParameter[] cmdParames)
        {
            cd.CommandText = sql;
            cd.CommandType = CommandType.Text;
            cd.Connection = con;
            cd.Parameters.Clear();
            foreach (SqlParameter parameter in cmdParames)
                cd.Parameters.Add(parameter);
    return cd;
        
        }
      

  2.   

    按楼上的返回Command后还是查询不到。。- -!!!
      

  3.   

    int rows = cmd.ExecuteNonQuery();
    发现用于command中的ExecuteNonQuery方法只选用于delete /update等操作时才会返回所影响的数,如果是select查询的话,是不会返回正确的数值,一直都是-1