+ -
当前位置:首页 → 问答吧 → C#+后台SQL,求大神帮忙看看!

C#+后台SQL,求大神帮忙看看!

时间:2011-12-13

来源:互联网

private void button1_Click(object sender, EventArgs e)
  {
  if (this.textBox1.Text.Trim() == "")
  {
  MessageBox.Show("请输入用户名", "信息");
  }
  if (this.textBox2.Text.Trim() == "")
  {
  MessageBox.Show("请输入密码", "信息");
  }
  else
  {
  string sql = "server=.;uid=sa;pwd=;database=st";
  SqlConnection con = new SqlConnection(sql);
  con.Open();
  string str = "select * from userinfo where userid='" + textBox1.Text.Trim() + "' and passwd='" + textBox2.Text.Trim() + "'";
  SqlCommand cmd = new SqlCommand(str, con);
  SqlDataReader read = cmd.ExecuteReader();
  if (read.Read())
  {
  form2 f=new form2();
  f.show();
  }
  else
  {
  MessageBox.Show("登录失败","信息");
  }

  }


我想在SQL里面加入教师、学生、管理员,三个身份验证,就是在登录的时候,多一个身份验证,在C#里面,如果是教师登录、则调用出教师程序框体,学生登录、则调用出学生程序框体。请问大神们怎么修改?

作者: xc7515387   发布时间: 2011-12-13

那你就直接在登录界面添加个选择身份啊.然后在后台中判断身份.不同的身份弹出不同的程序窗体..

作者: enter89   发布时间: 2011-12-13

你可以在存信息的表里加一个字段:“mark”,比如1对应教师,2对应学生,3对应管理员。根据前台传入的用户名和密码查询出对应的“mark”的值,根据返回的值调用不同的程序框体。

作者: zhujunhaolove   发布时间: 2011-12-13

引用 1 楼 enter89 的回复:

那你就直接在登录界面添加个选择身份啊.然后在后台中判断身份.不同的身份弹出不同的程序窗体..

用了combobox控件,加了选择。但是判断不同弹出的不同窗体语句写不出、写了很多都是错的。

作者: xc7515387   发布时间: 2011-12-13

引用 2 楼 zhujunhaolove 的回复:

你可以在存信息的表里加一个字段:“mark”,比如1对应教师,2对应学生,3对应管理员。根据前台传入的用户名和密码查询出对应的“mark”的值,根据返回的值调用不同的程序框体。

主要是C#中的语句写不来,那些都都没问题。我在C#的Program中写了一个public、来接受C#程序中的返回值,如果student返回值是1弹出学生、如果teacher的返回值是1弹出教师,但是这样写是错的。求帮下C#的代码!

作者: xc7515387   发布时间: 2011-12-13

跟2楼的想法一样的,在那个表当中定义另外一个字段,跟据登陆的sql语句返回那个字段的值,来显示哪个界面。

作者: foxwfb   发布时间: 2011-12-13

首先 你数据库的 用户表 必须包含三个 列 1 用户名 ,2密码,3类别
  不然 明明是学生的账户 也可以登录 老师用的界面??
而且 你那样 验证 账号密码是不对的。。

应该验证 是否存在 

 select count() from 用户表 where 用户名="" and 密码="" and 类别=
如果返回的值是1 则说明 有这个用户 ,则允许登录
如果返回的是0 则说明无这个用户,也就是账号密码或者类别不对,则不允许登录。
然后 在主窗口里 定义一个变量 是bool型 并public
然后在登录 的时候
if(类别==1)

主窗口 zhu=new 主窗口()
zhu.是不是老师=true
zhu.show()

}else
{
主窗口 zhu=new 主窗口()
zhu.是不是老师=false
zhu.show()
}
或者你有2个界面 那就更简单了,直接现实对应的界面就行了
 剩下的就不用我说了吧,。。如果剩下的 你还是不会,那你别学编程了

作者: lyf2jiandan   发布时间: 2011-12-13

引用 6 楼 lyf2jiandan 的回复:

首先 你数据库的 用户表 必须包含三个 列 1 用户名 ,2密码,3类别
不然 明明是学生的账户 也可以登录 老师用的界面??
而且 你那样 验证 账号密码是不对的。。

应该验证 是否存在

select count() from 用户表 where 用户名="" and 密码="" and 类别=
如果返回的值是1 则说明 有这个用户 ,则允许登录
如果……

这个我真试过、在主窗口,定义Public bool student=false,Public bool teacher=false,这样在C#程序中无法调用,而且我做的有三个,学生教师管理员、如果可以,你直接给出代码!

作者: xc7515387   发布时间: 2011-12-13

再加个level字段做级别区别
加个Combox组件,做级别
C# code
string str = "select * from userinfo where userid='" + textBox1.Text.Trim() + "' and passwd='" + textBox2.Text.Trim() + "'level='"+comboBox1.Text+"'";
……
 if (read.Read())
  {
   switch (comboBox1.Text)
            {
                case "学生": form学生 f1=new form学生(); f1.show();break;
                case "教师": form教师 f2=new form教师(); f2.show();break;
                default:form管理员 f3=new form管理员(); f3.show();break;
            }
  }
  else
  {
  MessageBox.Show("登录失败","信息");
  }

作者: xpingping   发布时间: 2011-12-13

引用 4 楼 xc7515387 的回复:
引用 2 楼 zhujunhaolove 的回复:

你可以在存信息的表里加一个字段:“mark”,比如1对应教师,2对应学生,3对应管理员。根据前台传入的用户名和密码查询出对应的“mark”的值,根据返回的值调用不同的程序框体。

主要是C#中的语句写不来,那些都都没问题。我在C#的Program中写了一个public、来接受C#程序中的返回值,如果student返回值是1弹出学生、如果……

你sql语句返回的不是一个table嘛,你可以在这张表中取出mark的值,然后if语句就可以了啊。
  if (dt.rows[0][0].tostring()==1) 
form教师 f1=new form教师(); f1.show();  
 下面类似啊!
我这个只是思路。
 

作者: zhujunhaolove   发布时间: 2011-12-13

建立两个按钮:教师登陆按钮,学生登陆按钮,在每个按钮Click事件里面新建一个窗体,在窗体上建立用户名,密码,然后登陆。

作者: ysndsc711   发布时间: 2011-12-13

再加个字段控制撒 ,老师默认为0,学生为1,然后在前台绑定cmbox,获取cmbox的displayNumber属性进行判断。返回相应的窗体。

作者: zhuzhenhua_vip   发布时间: 2011-12-13

C# code

在数据库表里加字段,管理员为0,老师 为1,学生为2

private void button1_Click(object sender, EventArgs e)
  {
  if (this.textBox1.Text.Trim() == "")
  {
  MessageBox.Show("请输入用户名", "信息");
  }
  if (this.textBox2.Text.Trim() == "")
  {
  MessageBox.Show("请输入密码", "信息");
  }
  else
  {
  string sql = "server=.;uid=sa;pwd=;database=st";
  SqlConnection con = new SqlConnection(sql);
  con.Open();
  string str = "select * from userinfo where userid='" + textBox1.Text.Trim() + "' and passwd='" + textBox2.Text.Trim() + "'";
  SqlCommand cmd = new SqlCommand(str, con);
  SqlDataReader read = cmd.ExecuteReader();
  if (read.Read())
  {
  if(read["type"]==1)
  {
  form1 f=new form1();
  f.show();
  }
else
{
form2 f=new form2();
  f.show();

}
  else
  {
  MessageBox.Show("登录失败","信息");
  }

  }

作者: DENQH   发布时间: 2011-12-13