sql-C#如何将combobox里面我选择的项和表内的一个数值比对,如果相符则进入对应的页面。

问题描述

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()=="管理员")
时间: 2024-11-02 00:42:50

sql-C#如何将combobox里面我选择的项和表内的一个数值比对,如果相符则进入对应的页面。的相关文章

select-在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写

问题描述 在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写 List<string> tableNames = "Select( (string)x["Table_Name"] from dt where type=1 and flags=0)"; dt是连接数据库时设定的表名 解决方案 sql语句如下所示:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' 前提是提前设置好config配置文

visual studio 2010-以下代码是否能根据combobox中的选择在datagridview中显示相应的数据表信息?

问题描述 以下代码是否能根据combobox中的选择在datagridview中显示相应的数据表信息? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.D

Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足

原文:Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足 环境: Sql Server2012 SP3企业版,Windows Server2008 标准版   问题由来: 最近在做DB优化的时候,发现一个存储过程有非常严重的性能问题, 由于整个SP整体逻辑是一个多表关联的复杂的查询,整体结构比较复杂的,通过的分析和尝试, 最后发现问题出在其中一个大表的查询上实现方式上, 因为这个大表上的意外的执行方式,导致其他表无法被驱动,其他表也

深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行.       2.外联接.外联接可以是左向外联接.右向外联接或完整外部联接.     在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     1)LEFT  JOIN或LEFT OUTER JOIN     左向外联接的结果集包括  LEF

Oracle性能优化学习笔记之选择最有效率的表名顺序

        选择最有效率的表名顺序(只在基于规则的优化器中有效)         ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二

access-数据库连接时,在combobox中出现显示ACCESS中所有表名时出现系统表

问题描述 数据库连接时,在combobox中出现显示ACCESS中所有表名时出现系统表 怎么在显示的时候将这些系统表名去除呢? 我在ACCESS中显示表名的时候,系统表没有显示,但是用C#在combobox中显示所有表名时,尽然把系统表都显示出来了,请问怎么改C#语言 解决方案 你可以加上一个判断 if (!表名.Contains("~TMP")) comboBox1.Items.Add(表名); 解决方案二: 这不是系统表,这些都是临时表. sql语句里面过滤一下. 解决方案三: 解

SQL应用与开发:(五)多个数据表的连接

数据库中的各个表中存储着不同的数据,用户往往需要用多个表中的数据来组合.提炼出所需要的信息.如果一个查询需要对多个表进行操作,就称为连接查询.连接查询的结果集或结果表称为表之间的连接.查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系型数据库查询最主要的特征. 实现连接的结果是在向数据库增添新类型的数据方面没有限制,具有很大的灵活性.通常总是通过连接创建一个新表,以包含不同表中的数据.如果新表有合适的域,就可以将它连接到现有的表. 1.简单连接操作 最简单的连接方式是在SELECT语

在win7下安装ghostxp重启时无选择启动项菜单

  一开始直接在win7下用Ghost安装xp到f盘.然后发现,重启时直接进入win7,不进入xp. 然后进pe重新用Ghost后依旧不进入xp. 上网查找原因后发现是用NTBOOT软件修复xp引导目录. 一开始找的非常麻烦,还需要把C盘设置为隐藏区域啥的,吓得我没敢整. 后来找到一个差不多,我就按照这个办法来了,前面的都直接省略掉,装完xp重新进入win7后,我就直接下载NTBOOT这个软件,并点手动修复(一开始下载的是2.0.X版本的,不带手动修复的,后来下载的2.5.7版本的就有了) 用管

服务器-dell R710 开机界面右上角异常 无法选择启动项 (图)

问题描述 dell R710 开机界面右上角异常 无法选择启动项 (图) 苦逼程序员应BOSS要求改装系统,但是开机按F9-F12都不好使,开机界面右上角那些选项都变成了: Enter System Services To cancel,enter IDRAC6 Configuration Utility 这是什么原因,怎么解决呢 ~(@^_^@)~ 解决方案 先检查下你的键盘接口是不是有问题 解决方案二: 先参考如何为戴尔PowerEdge 11G服务器设置和管理iDRAC 6和生命周期控制器