C#+后台SQL,求大神帮忙看看!
时间:2011-12-13
来源:互联网
{
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
作者: zhujunhaolove 发布时间: 2011-12-13
那你就直接在登录界面添加个选择身份啊.然后在后台中判断身份.不同的身份弹出不同的程序窗体..
用了combobox控件,加了选择。但是判断不同弹出的不同窗体语句写不出、写了很多都是错的。
作者: xc7515387 发布时间: 2011-12-13
你可以在存信息的表里加一个字段:“mark”,比如1对应教师,2对应学生,3对应管理员。根据前台传入的用户名和密码查询出对应的“mark”的值,根据返回的值调用不同的程序框体。
主要是C#中的语句写不来,那些都都没问题。我在C#的Program中写了一个public、来接受C#程序中的返回值,如果student返回值是1弹出学生、如果teacher的返回值是1弹出教师,但是这样写是错的。求帮下C#的代码!
作者: xc7515387 发布时间: 2011-12-13
作者: foxwfb 发布时间: 2011-12-13
不然 明明是学生的账户 也可以登录 老师用的界面??
而且 你那样 验证 账号密码是不对的。。
应该验证 是否存在
如
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
首先 你数据库的 用户表 必须包含三个 列 1 用户名 ,2密码,3类别
不然 明明是学生的账户 也可以登录 老师用的界面??
而且 你那样 验证 账号密码是不对的。。
应该验证 是否存在
如
select count() from 用户表 where 用户名="" and 密码="" and 类别=
如果返回的值是1 则说明 有这个用户 ,则允许登录
如果……
这个我真试过、在主窗口,定义Public bool student=false,Public bool teacher=false,这样在C#程序中无法调用,而且我做的有三个,学生教师管理员、如果可以,你直接给出代码!
作者: xc7515387 发布时间: 2011-12-13
加个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
引用 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
作者: ysndsc711 发布时间: 2011-12-13
作者: zhuzhenhua_vip 发布时间: 2011-12-13
在数据库表里加字段,管理员为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
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28