问题描述
- C#如何将combobox里面我选择的项和表内的一个数值比对,如果相符则进入对应的页面。
-
我们数据库课程设计做学生成绩管理系统。
我现在在做登录界面的代码,对应的表结构是user_name,user_pwd,status遇到了一个问题:就是只要我输入的用户名和密码正确,在combobox里面选择管理员就进入管理员页面,选择学生就进入了学生页面。表里面的status是标注这个账号是什么角色,想在代码里加上一个条件就是希望能将combobox里面我选择的项和表内的status比对,如果相符则进入对应的页面。下面是我登录部分的代码:
public bool CheckInput()
{
bool flag=false;
if(string.IsNullOrEmpty(this.用户名.Text.Trim()))
{
MessageBox.Show("用户名不能为空,登录失败","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else if(string.IsNullOrEmpty(this.密码.Text.Trim()))
{
MessageBox.Show("密码不能为空,登录失败","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
flag=true;
}
return flag;
}
///
/// 登录按钮点击事件
///
///
///
private void 登录_Click(object sender, EventArgs e)
{
if (CheckInput())
{
//无密码建立连接SQL数据库对象
string connStr = "Data Source=PC-20140923RVHLSQL2005;Initial Catalog=Stu_mark_MS;Integrated Security=True";
//创建数据库连接对象
SqlConnection conn = new SqlConnection(connStr);
try
{
//打开数据库连接
conn.Open();
//创建SQL语句
string sql = "select user_name,user_pwd,status from user_info where user_name='" + 用户名.Text + "'and user_pwd='" + 密码.Text + "'";
//创建命令对象
SqlCommand comm = new SqlCommand(sql, conn);//执行SQL命令
comm.CommandText = sql;
comm.Connection = conn;
SqlDataReader ada = comm.ExecuteReader();
if (ada.Read())
{
if (this.身份.SelectedItem.ToString() == "管理员"&& status=="管理员")
{
//创建管理员信息窗体实例
admin admin = new admin();
//打开管理员信息窗体
admin.Show();
}
if (this.身份.SelectedItem.ToString() == "学生")
{
//创建学生信息窗体实例
student student = new student();
//打开学生信息窗体
student.Show();
}
}
else
{
MessageBox.Show("用户名密码有误,请重新输入");
}
}
catch (Exception ex)
{
MessageBox.Show("出现异常:" + ex.Message);
}
finally
{
conn.Close();
}
}
解决方案
select user_name,user_pwd,status from user_info where user_name='" + 用户名.Text + "'and user_pwd='" + 密码.Text + "' and status =‘" +combobox.text+",";
然后直接饭后受影响行数 comm.ExecuteNonQuery();然后判断行数>0就竟然combox对应的界面否则提示错误
解决方案二:
你点击什么身份登录就显示什么窗口就行了呗
解决方案三:
你的state变量都没初始化吧。。直接用游标判断下
//if (this.身份.SelectedItem.ToString() == "管理员"&& status=="管理员")
//=======>>
if (this.身份.SelectedItem.ToString() == "管理员"&& ada["status"].ToString()=="管理员")