修改密码页面代码-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才好,不知哪里错了。谢谢大家了。祝大家新年快乐。
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才好,不知哪里错了。谢谢大家了。祝大家新年快乐。
解决方案 »
- 求救,师哥师姐大家快帮帮我!集合!!!遍历
- winform如何动态在richtextbox里面添加表格
- VS2005套装源码及组件,需要的,赶快进来Download
- 关于Datagrid控件编辑时的问题
- 请教关于 Attributes.Add 方来进行服务器端控件调用客户端方法的问题
- 怎么才能让标题在Datagrid控件中只显示一部分呀
- 请问同样一个asp做好的系统,客户要求用.net做实现同样的功能,这个价格应该怎么报,怎么个比率?
- 记录日志遇到了iframe的难题
- 关于设计模式
- 在线等待,关于datagrid的问题
- 请问为什么vwd2008会生成这么怪的SQL呢?
- treeview 读取xml问题
{
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;
}
发现用于command中的ExecuteNonQuery方法只选用于delete /update等操作时才会返回所影响的数,如果是select查询的话,是不会返回正确的数值,一直都是-1