winform窗体修改密码出错求前辈们指点
过程或函数 '
public partial class HR_SetPassword : Form
{
public string AdminName { get;set;}
public HR_SetPassword()
{
InitializeComponent();
}
private void btnxiugai_Click(object sender, EventArgs e)
{
//这样定义也不是报错
//string AdminName = this.AdminName; GetByAdminName存储过程的名字
Administrator admin = new AdministratorBLL().GetByAdminName(this.AdminName);
if (txbyuanshimima.Text == "" || txbnewmima.Text == "" ||txbok.Text == "")
{
MessageBox.Show("密码输入不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
txbyuanshimima.Text = "";
txbnewmima.Text = "";
txbok.Text = "";
}
else if (admin.AdminPwd != txbyuanshimima.Text.Trim())
{
MessageBox.Show("用户密码不正确!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
txbyuanshimima.Text = "";
txbnewmima.Text = "";
txbok.Text = "";
}
else if (txbnewmima.Text.Trim() != txbok.Text.Trim())
{
MessageBox.Show("密码输入不一致!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txbyuanshimima.Text = "";
txbnewmima.Text = "";
txbok.Text = "";
}
else if (AdminName != null)
{
Administrator ad = new Administrator();
ad.AdminName = this.AdminName;
ad.AdminPwd = txbnewmima.Text.Trim();
if (new AdministratorBLL().BllUpdata(ad) > 0)
{
MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.None);
this.Close();
}
else
{
MessageBox.Show("修改失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.None);
txbyuanshimima.Text = "";
txbnewmima.Text = "";
txbok.Text = "";
}
}
}
}
}
报这个错小弟一直困惑GetByAdminName' 需要参数 '@AdminName',但未提供该参数。 this.AdminName 不是告诉他的值了吗?怎么还是出错呢?前辈们指点下。 WinForm 密码 --------------------编程问答-------------------- this.AdminName重来没有赋值。默认是null,传入到存储过程中肯定出错。 --------------------编程问答-------------------- 是不是this.AdminName.Text啊。 --------------------编程问答-------------------- 不是的我试了。 --------------------编程问答-------------------- 你看出来了问题所在能在详细点吗? --------------------编程问答-------------------- 1樓已經說了,你的this.AdminName沒有賦值,你在
Administrator admin = new AdministratorBLL().GetByAdminName(this.AdminName);
這句下斷點,自己看下this.AdminName的值是多少 --------------------编程问答-------------------- 你应该把相关的代码尽量发上来,比如GetByAdminName访问数据库这个实现 --------------------编程问答--------------------
GetByAdminName
public Administrator GetByAdminName(string adminName)
{
//先实例
Administrator admin = new Administrator();
//commandText命令文本
string commandText = "GetByAdminName";
SqlParameter[] commandParameters ={
new SqlParameter("@AdminName",adminName)
};
//ExecuteReader的read()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集
//一般用在判断这行的结果集是否有效果,有的话就执行下面的操作。一句话:一般用于判断返回的结果。
//CommandType.StoredProcedure 执行类型为 存储过程
//commandParameters 存储过程中使用的参数
//调用 SQLHelper 类中的 ExecuteReader方法 来执行 存储过程
SqlDataReader dataReader = SQLHelper.ExecuteReader(SQLHelper.connectionString, CommandType.StoredProcedure, commandText, commandParameters);
if (!dataReader.HasRows)//HasRows表示的是从数据库读出来的数据集dataReader中是否存在数据,它的作用是用来判断数据集是否为空,执行的结果为 true/false
{
admin = null;
}
else
{
if (dataReader.Read())
{
admin.AdminName = (string)dataReader["AdminName"];
admin.AdminPwd = (string)dataReader["AdminPwd"];
admin.EmployeeID = (int)dataReader["EmployeeID"];
}
}
dataReader.Close();
return admin;
} --------------------编程问答-------------------- AdminName 在哪里赋值的 --------------------编程问答-------------------- 好像是没有赋值那么怎么赋值呢? --------------------编程问答--------------------
你程序中没有全局用户登录信息的数据么?
或者你窗体上有该用户名的字段么?有的话直接从它获取管理员姓名的值 --------------------编程问答-------------------- 这要看你存储过程怎么写的了 --------------------编程问答--------------------
好像是没有赋值那么怎么赋值呢?
AdminName 在哪里赋值的
你程序中没有全局用户登录信息的数据么?
或者你窗体上有该用户名的字段么?有的话直接从它获取管理员姓名的值
没有 你能写点代码给我看看吗?
好像是没有赋值那么怎么赋值呢?
AdminName 在哪里赋值的
你程序中没有全局用户登录信息的数据么?
或者你窗体上有该用户名的字段么?有的话直接从它获取管理员姓名的值
补充:.NET技术 , C#