数据库设计-学生管理系统数据库系统

这篇博客详细记录了如何设计和实现一个学生管理系统数据库,包括需求分析、概念结构设计、C#编程实现各功能模块,如用户登录、学生管理、课程管理和统计界面等。提供了相关视频链接和实验要求,旨在帮助读者掌握数据库系统设计和开发。
摘要由CSDN通过智能技术生成

数据库系统设计综合实验

注:
这一篇的代码是我看着视频(很详细)一步一步打出来。其中在C#的设计,看到代码也无用,主要那个设计过程才是比较重要的,所以我顺便也把视频链接发上来了,跟着视频一步一步来更方便。

视频链接
提取码: w562
(链接地址:https://pan.baidu.com/s/121dnknOoCIg_fxdqAReTTw )
实验目的
通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统。
实验要求
熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的基本方法。实验中根据实验要求完成相应的任务,并独立完成实验报告。
实验内容
设计的数据库系统可从以下题目中选择,但不限定于以下题目,可自由选择。
需提供系统简要的需求分析,给出大体的功能介绍;完成数据库的概念结构设计,建议用PowerDesigner画出系统的逻辑结构图或物理结构图(也可以使用其他工具);任选自己熟悉的数据库管理系统和编程语言完成系统主要功能模块的开发。
系统题目参考
1、学生成绩管理系统
2、网上书城系统
3、进销存系统
4、酒店客房管理系统
5、图书馆管理系统

学生成绩管理系统:

创建用户

create user Jane identified by Janepassword;
grant connect,resource,unlimited tablespace to Jane;
grant create view to Jane;

以用户jane登陆:
建表:
学生:

create table student
(
sno varchar2(10) primary key,
sname varchar2(20) not null unique,
ssex char(3) check(ssex in('男','女')),
sage smallint not null,
pwd varchar(20) not null
);

教师

create table teacher
(
tno varchar(7) primary key,
tname varchar(20) not null unique,
tposition varchar(20) not null,
tsalary smallint not null,
pwd varchar(20) not null
);

课程:

create table course
(
cno varchar(4) primary key,
cname varchar(40) not null unique,
ccredit smallint not null,
tno varchar(7) not null,
foreign key (tno) references teacher(tno)
);

学生课表:

create table sc
(
sno varchar(10) not null,
cno varchar(4) not null,
grade smallint not null,
primary key(sno,cno),
foreign key (sno) references student(sno),
foreign key (cno) references course(cno)
);

插入数据:

insert into student(sname,ssex,sno, sage, pwd) values('毛泽动','男','180610001',20,'123456');
insert into student(sname,ssex,sno, sage, pwd) values('周恩赖','女','180610002',19,'123456');
insert into student(sname,ssex,sno, sage, pwd) values('牛逼','女','180610011',18,'123456');
insert into student(sname,ssex,sno, sage, pwd) values('朱坚强','男','180610012',19,'123456');
insert into student(sname,ssex,sno, sage, pwd) values('秀儿','男','180610021',19,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t001','白超痛','教授',20000,'123456');
insert into teacher(tno,tname, tposition, tsalary, pwd) values('t002','乔壁罗','副教授',15000,'123456');
insert into teacher(tno,tname, tposition, tsalary, pwd) values('t003','亚希啊雷','教授',35000,'123456');
insert into teacher(tno,tname, tposition, tsalary, pwd) values('t004','鲁班','副教授',38000,'123456');
insert into teacher(tno,tname, tposition, tsalary, pwd) values('t005','后羿','副教授',42000,'123456');
insert into teacher(tno,tname, tposition, tsalary, pwd) values('t006','上官婉儿','教授',60000,'123456');

insert into course values('6','数值分析',2,'t001');
insert into course values('2','高等数学',4,'t002');
insert into course values('7','C++语言',4,'t003');
insert into course values('5','数据结构',4,'t002');
insert into course values('1','数据库',4,'t003');
insert into course values('3','汇编语言',3,'t004');
insert into course values('4','操作系统',3,'t005');

insert into sc values('180610001','1',92);
insert into sc values('180610001','2',85);
insert into sc values('180610001','3',88);
insert into sc values('180610002','2',90);
insert into sc values('180610002','3',80);

建立视图:

create view courseinfo as select course.cno 课程编号,course.cname 课程名称,teacher.tname 任课老师,course.ccredit 课程学分,countnum 选修人数,
avg_grade 平均分,max_grade 最高分,min_grade 最低分 from teacher,
course left outer join (select cname, count(*) countnum,avg(grade) avg_grade,max(grade) max_grade,min(grade) min_grade from sc,course 
where course.cno=sc.cno group by cname)a1 on (course.cname=a1.cname) where teacher.tno=course.tno;

create view studentinfo as select student.sno 学号,student.sname 姓名,(select sum(grade) from sc where sno=student.sno) 总分 ,
(select sum(ccredit) from course where cno in (select cno from sc where sno=student.sno)) 总学分 ,
(select max(grade) from sc where sc.sno in (student.sno)) 最高分,(select min(grade) from sc where sc.sno in (student.sno)) 最低分 from student;

create view teacherinfo1 as select tposition 职位,count(tno) 在任人数,avg(tsalary) 平均工资 from teacher group by tposition;

create view teacherinfo2 as select tno 教师工号,tname 教师名称,(select count(student.sno) from student,sc,course where student.sno=sc.sno and sc.cno=course.cno and course.tno=teacher.tno) 授课学生总人数 from teacher;

保存:

Commit

C#设计
再这次的C#设计中,所实现的界面化如下所示:
运行程序:
第一个界面:登陆选项
在这里插入图片描述
登陆之后:
第二个界面:管理界面:
在这里插入图片描述
学生查询,删除和修改(双击即可)和添加:

在这里插入图片描述
在这里插入图片描述
第三个界面:课程管理

在这里插入图片描述
在这里插入图片描述
第四个界面:统计界面
在这里插入图片描述
在这里插入图片描述
C#代码:
总共有10个代码文件负责不同部分。

MainForm.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace dbApp1
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void 查询学生ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmStuQuery frm = new FrmStuQuery();
            frm.MdiParent = this;
            frm.Show();
        }

        private void 添加学生ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmStuInsert frm = new FrmStuInsert();
            frm.MdiParent = this;
            frm.Show();
        }

        private void 查询课程ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmCourseQuery frm = new FrmCourseQuery();
            frm.MdiParent = this;
            frm.Show();
        }

        private void 添加课程ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmCourseInsert frm = new FrmCourseInsert();
            frm.MdiParent = this;
            frm.Show();
        }

        private void 统计ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FrmStatistics frm = new FrmStatistics();
            frm.MdiParent = this;
            frm.Show();
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            FrmLogin frm = new FrmLogin();
            if(frm.ShowDialog(this)==DialogResult.OK)
            {
                
            }
            else
            {
                Application.Exit();
            }
        }
    }
}

FrmStuQuery.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    public partial class FrmStuQuery : Form
    {
        public FrmStuQuery()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //1.创建连接对象2.打开连接3.创建命令对象,4.执行5.关闭连接
            string sql = string.Format("select sno,sname,ssex,sage,pwd from student where sname like '{0}%'" ,this.textBox1.Text);
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql,con);
                OracleDataReader odr=cmd.ExecuteReader();
                if (odr.HasRows)
                {
                    BindingSource bs = new BindingSource();
                    bs.DataSource = odr;
                    this.dataGridView1.DataSource = bs;
                }
                else
                    this.dataGridView1.DataSource = null;
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(this.dataGridView1.SelectedRows.Count==0)
            {
                MessageBox.Show("请选中后再删除!");
                return;
            }
            DataGridViewRow row = this.dataGridView1.SelectedRows[0];
            string sql = string.Format("delete from student where sno='{0}'", row.Cells[0].Value.ToString());
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                if(cmd.ExecuteNonQuery()==1)
                {
                    MessageBox.Show("delete success!");
                    this.dataGridView1.Rows.Remove(row);
                }
                else
                {
                    MessageBox.Show("没有找到学生!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }

        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 0) return;
            DataGridViewRow row = this.dataGridView1.SelectedRows[0];
            FrmStuUpdate frm = new FrmStuUpdate();
        
            frm.tbsno.Text = row.Cells[0].Value.ToString();
            frm.tbsname.Text = row.Cells[1].Value.ToString();
            frm.tbssex.Text = row.Cells[2].Value.ToString();
            frm.tbsage.Text = row.Cells[3].Value.ToString();
            frm.tbpwd.Text = row.Cells[4].Value.ToString();
            frm.ShowDialog(this);
        }
    }
}

FrmStuInsert:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    public partial class FrmStuInsert : Form
    {
        public FrmStuInsert()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = string.Format("Insert into student(sno,sname,ssex,sage,pwd) values('{0}','{1}','{2}','{3}','{4}')", tbsno.Text, tbsname.Text, tbssex.Text, tbsage.Text, tbpwd.Text);
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                if (cmd.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("Insert success!");
                }
           
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }
    }
}

FrmStuUpdate.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    public partial class FrmStuUpdate : Form
    {
        public FrmStuUpdate()
        {
            InitializeComponent();
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = string.Format("update student set sname='{0}',ssex='{1}',sage='{2}',pwd='{3}' where sno='{4}'",this.tbsname.Text,this.tbssex.Text,this.tbsage.Text,this.tbpwd.Text,this.tbsno.Text);
            
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                if (cmd.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("update success");
                }
                else
                {
                    MessageBox.Show("没有找到学生!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }

        }
    }
}

Course.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    class Course
    {
        public string Cno { get; set; }
        public string Cname { get; set; }
        public int Ccredit { get; set; }
        public string tno { get; set; }
        public static List<Course> SelectCourse(string cname)
        {
            string sql ="select cno,cname,ccredit,tno from Course where cname like:cname";
            OracleParameter[] para = new OracleParameter[] { new OracleParameter(":cname", OracleDbType.Char,40) };
            para[0].Value = cname + "%";
            List<Course> list = new List<Course>();
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql,con);
                cmd.Parameters.AddRange(para);
                OracleDataReader odr = cmd.ExecuteReader();
                while(odr.Read())
                {
                    Course c = new Course();
                    c.Cno = odr.GetString(0);
                    c.Cname = odr.GetString(1);
                    c.Ccredit = odr.GetInt32(2);
                    c.tno = odr.GetString(3);
                    list.Add(c);
                    
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
            return list;
        }
        public static int DeleteCourse(string cno)
        {
            int result = 0;
            string sql = "delete from course where cno=:cno";
            OracleParameter[] para = new OracleParameter[] { new OracleParameter(":cno", OracleDbType.Char, 4) };
            para[0].Value = cno;
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                cmd.Parameters.AddRange(para);
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
            return result;
        }
        public static int InertCourse(Course c)
        {
            int result = 0;
            string sql = "insert into course(Cno,Cname,Ccredit,tno) values(:Cno,:Cname,:Ccredit,:tno)";
            OracleParameter[] para = new OracleParameter[] { new OracleParameter(":Cno", OracleDbType.Char, 4), new OracleParameter(":Cname", OracleDbType.Char, 40), new OracleParameter(":Ccredit" ,OracleDbType.Int32,38), new OracleParameter(":tno", OracleDbType.Char, 7) };
            para[0].Value = c.Cno;
            para[1].Value = c.Cname;
            para[2].Value = c.Ccredit;
            para[3].Value = c.tno;
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                cmd.Parameters.AddRange(para);
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
            return result;
        }
        public static int UpdateCourse(Course c)
        {
            int result = 0;
            string sql = "update course set cno=:cno,Cname=:Cname,Ccredit=:Ccredit,tno=:tno where cno=:cno";
            OracleParameter[] para = new OracleParameter[] { new OracleParameter(":Cno", OracleDbType.Char, 4), new OracleParameter(":Cname", OracleDbType.Char, 40), new OracleParameter(":Ccredit", OracleDbType.Int32, 38), new OracleParameter(":tno", OracleDbType.Char, 7) };
            para[0].Value = c.Cno;
            para[1].Value = c.Cname;
            para[2].Value = c.Ccredit;
            para[3].Value = c.tno;
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                cmd.Parameters.AddRange(para);
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
            return result;
        }
    }
}

FrmCourseQuery.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace dbApp1
{
    public partial class FrmCourseQuery : Form
    {
        public FrmCourseQuery()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = Course.SelectCourse(this.textBox1.Text);
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (this.dataGridView1.Rows.Count == 0) return;
            if (e.RowIndex < 0) return;
            DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
            if(e.ColumnIndex==4)
            {
                string cno = row.Cells[0].Value.ToString();
                if (Course.DeleteCourse(cno) == 1)
                {
                    MessageBox.Show("delete success");
                    //this.dataGridView1.Rows.Remove(row);
                }
                else MessageBox.Show("没有找到数据");
            }
            else if(e.ColumnIndex==5)
            {
                Course c = (Course)row.DataBoundItem;
                FrmCourseUpdate frm = new FrmCourseUpdate();
                frm.tbCno.Text = c.Cno;
                frm.tbCname.Text = c.Cname;
                frm.tbCcredit.Text = c.Ccredit.ToString();
                frm.tbtno.Text = c.tno;
                frm.ShowDialog();
            }
        }
    }
}

FrmCourseInsert.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace dbApp1
{
    public partial class FrmCourseInsert : Form
    {
        public FrmCourseInsert()
        {
            InitializeComponent();
        }

        private void FrmCourseInsert_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Course c = new Course();
            c.Cno = tbCno.Text;
            c.Cname = tbCname.Text;
            c.Ccredit = Convert.ToInt32(tbCcredit.Text);
            c.tno = tbtno.Text;
            if(Course.InertCourse(c)==1)
            {
                MessageBox.Show("Insert success");
            }
            
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void tbCcredit_TextChanged(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void tbCname_TextChanged(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void tbCno_TextChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void tbtno_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

FrmCourseUpdate.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace dbApp1
{
    public partial class FrmCourseUpdate : Form
    {
        public FrmCourseUpdate()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Course c = new Course();
            c.Cno = tbCno.Text;
            c.Cname = tbCname.Text;
            c.Ccredit = Convert.ToInt32(tbCcredit.Text);
            c.tno = tbtno.Text;
            if(Course.UpdateCourse(c)==1)
            {
                MessageBox.Show("Update success!");
            }
            else
            {
                MessageBox.Show("可能没有找到记录!");
            }
        }
    }
}

FrmStatistics.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    public partial class FrmStatistics : Form
    {
        public FrmStatistics()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = "select * from studentinfo";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                OracleDataReader odr = cmd.ExecuteReader();
                if (odr.HasRows)
                {
                    BindingSource bs = new BindingSource();
                    bs.DataSource = odr;
                    this.dataGridView1.DataSource = bs;
                }
                else
                    this.dataGridView1.DataSource = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string sql = "select * from Courseinfo";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                OracleDataReader odr = cmd.ExecuteReader();
                if (odr.HasRows)
                {
                    BindingSource bs = new BindingSource();
                    bs.DataSource = odr;
                    this.dataGridView1.DataSource = bs;
                }
                else
                    this.dataGridView1.DataSource = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }
    }
}

FrmLogin.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
namespace dbApp1
{
    public partial class FrmLogin : Form
    {
        public FrmLogin()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sql = string.Format("select * from student where sno='{0}' and pwd='{1}'", this.tbsno.Text, this.tbpwd.Text);
            OracleConnection con = new OracleConnection();
            con.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oral3)));Persist Security Info=True;User ID=Jane;Password=Janepassword;";
            try
            {
                con.Open();
                OracleCommand cmd = new OracleCommand(sql, con);
                OracleDataReader odr = cmd.ExecuteReader();
                if (odr.HasRows)
                {
                    MessageBox.Show("Login success");
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                else
                    MessageBox.Show("Login name or password is wrong!");
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                con.Close();
            }
        }
    }
}
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值