用C#制作学生信息管理系统
课程设计(论文)
学生信息管理系统
系 别 : | 计算机系 |
专业(班级): | 计算机科学与技术2010级3班 |
作者(学号): | 冯深海(51002013036) |
指导教师: | 王 磊 |
完成日期: | 2011年6月12日 |
蚌埠学院教务处制
摘 要
随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一个重要部分,信息查询系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。学生信息管理系统是学校管理学生信息的一种必不可少的的工具,它相对与手工书写管理更加便利,快捷,节约大量时间,大幅提高日常查询效率。
关于学生信息管理系统,论文主要分几个重点部分来介绍它的功能的实现。对各个功能的描述,内容简洁,明了,结构紧凑 。学生信息管理系统可以满足用户的需求,具体体
现在对学生信息的录入,修改,查询,修改等操作。实现其中的操作除了对各个类中代码
书写,更重要的还需要书写与后台数据库交互的代码, 满足数据库信息的输入和输出。
学生信息管理系统的开发目的是为了实现学生个人信息的信息化管理。本系统需要完成
功能有:
1 .登录学生管理系统;
2 .录入学生信息,包括学号,姓名,性别,出生日期;
3 .修改已知学号的学生信息;
4 .删除已知学号的学生信息;
5 .查询已知学号的学生信息;
关键词 登录(Login),录入(FormAddStudent),修改(studentmodify),删除(studentdelete) ,查询(studensearch)
第一章 引言(或概述)
第一章 引言(或概述)
学生信息管理系统开发我们需具备对后台数据库表的建立,插入,查询,删除,更新,Visual Studio2005 工具的使用 和面向对象C#语言等知识。通过对学生信息管理系统的设计慢慢了解,深入学习,从而达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。
根据课题的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和Visual Studio2005工具的使用。
第二章 设计预案
第二章
2.1 学生信息管理系统的介绍
2.1 学生信息管理系统的介绍
学生信息管理系统主要分为四种模块:录入模块、删除模块、修改模块、查找模块。逐步对各个模块的代码书写,实现多种功能,让用户快速而便捷地使用学生信息管理系统。用户可以录入学生信息,输入学生的学号从而删除学生信息、查找学生信息、修改学生信息。
2.2
2.2.1 开发方案
2.2.1开发方案
本人计划编写一个人学生信息管理系统,主要功能是满足用户对学生信息的管理,包括录入、删除、修改、查询功能。
2. 2.2 模块设计及分析
本次设计主要分为四种模块:录入模块、删除模块、修改模块、查找模块、详细可以参考下图:
图2-1
第三章 设计步骤和要点
设计步骤和要点
本次设计和数据库紧密相连,首先我们根据题意设计相关的数据库以及相关的数据表(book,manager,user)。然后我们把这次的设计内容分成了若干个模块,逐次实现各个模块的功能,这样不仅便于功能的实现,而且外观美观,层次清晰。制作过程主要是页面的设计和相关代码的编写。
3.1 数据库设计说明
学生信息数据表
列名 | 数据类型 | 数据长度 | 允许null | 备注 |
sno | nchar | 9 | 不允许 | 学生学号 |
sname | nvarchar | 20 | 允许 | 学生姓名 |
sex | nchar | 2 | 允许 | 学生性别 |
sbirthday | nchar | 10 | 允许 | 出生日期 |
图 3-1 学生信息数据表
用户登录表
列名 | 数据类型 | 数据长度 | 允许null | 备注 |
id | int | 不允许 | ||
username | nvarchar | 10 | 允许 | 用户名 |
password | nvarchar | 10 | 允许 | 登录密码 |
图 3-2 用户登录表
3.2 数据库的完整性和安全性
数据库中关系模型完整性约束:实体完整性、参照完整性、和用户定义完整性。其实实体完整性和参照完整性是关系模型中必须满足的完整性条件。因此用户在使用数据库必须遵守完整性规则:实体完整性规则、参照完整性规则、用户定义完整性规则。在关系模型中以主码作为唯一标识,因此主码不能为空。总的来说数据库完整性是指数据的正确性和相容性。例如本系统中学生学号必须唯一;性别只能是男或女等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的.
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏。安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.
3.3 登录模板设计
为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。
用户登录窗体中放置了两个文本框(textbox),用来输入用户名和密码;两个按钮(Button)用来登录、取消。
截图 1
图 3-3 登录窗口
登录代码的关键部分和代码的简单说明:private void button1_Click(object sender, EventArgs e)//构造函数,返回值空类型,
{
//调用dataaccesslayer层的login()方法,类实例化
SQLHelper sqlhelper = new SQLHelper();
int total = sqlhelper.login(textBoxusername.Text.Trim(), textBoxpasword.Text.Trim());//返回一个整型
if (total > 0)
{
FormMain main = new FormMain();
main.Show();
this.Hide();
}
else
{
textBoxusername.Text = "";
textBoxpasword.Text = "";//用户名和密码清空
textBoxusername.Focus();//光标恢复原位
MessageBox.Show("用户名或密码错误", "警告", MessageBoxButtons.OK);
}
}
3.4 FormMain主界面设计
登陆成功后即可进入FormMain主界面模块。窗体名称为学生信息管理系统,有两大主要控件:系统、档案。其中系统中包括注销,退出按钮。 点击注销按钮返回到登录界面,点击退出按钮退出学生管理系统;点击档案按钮进入到操作指令(录入学生信息、删除学生信息、查找学生信息、修改学生信息)按钮,点击一下进入到各个窗口,使用相应的功能。
截图2
图 3-4 学生信息管理系统
图 3-5 学生信息管理系统
设计FormMain主界面的关键代码和代码的简单说明:
1.private void 注销ToolStripMenuItem_Click(object sender, EventArgs e)
{ Formlogin login = new Formlogin();
login.ShowDialog();//显示登录窗口}
2.private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{this.Close();//退出学生信息管理系统}
3.private void 录入学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{FormAddStudent addstudent = new FormAddStudent();
addstudent.ShowDialog();//显示录入学生信息窗口
if (addstudent.DialogResult==DialogResult .OK)//判断显示窗口时用的标识是否与 系统中的一样{bind();}//调用bind方法}
4.BindingSource bs = new BindingSource();//绑定数据源这样的一个类,进行类的实例化
5.public void bind()//构造函数
{bs.DataSource = new SQLHelper().CreateTable();
dataGridView1.DataSource = bs;}//通过数据源(DataSource)这个渠道把控件 (dataGridView1)与反馈数据绑定在一起
6. private void 删除学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{ FormDeleteStudent delete = new FormDeleteStudent();
delete.ShowDialog();//刷新网格
if ( delete.DialogResult == DialogResult.OK)
{bind();}
}
7. 进入查询窗口的实现两句代码:Studentserch search = new Studentserch();
search.ShowDialog();
8.Studentmodify modify = new Studentmodify();
modify.ShowDialog();if (modify.DialogResult == DialogResult.OK)
{bind();}
3.5 录入学生信息模块设计
创建一个新的窗体Form2,,将Form2改名为录入学生信息,在该窗体中设置控件,点击其中的控件按钮进入相应代码编写的地方,进行代码的编写。
截图 3
图3-6 录入学生信息
代码编写要点和代码说明:
1. string 学号= textBoxsno.Text.Trim();string 姓名= textBoxsname.Text.Trim();string 性别= comboBoxsex.Text.Trim();string 日期= textBoxbirthday.Text.Trim();//定义4个字符串型变量(学号,姓名,性别,日期),分别把控件的内容赋给他们
2.try{……你的代码};catch ()
{检验并给出提示};
3.close();//取消录入
3.6 删除学生信息模块设计
创建一个新的窗体,,将该窗体命名为删除学生信息,在该窗体中设置控件,点击其中的控件按钮进入相应代码编写的地方,进行代码的编写。将各个控件中属性名改为易于识别名字,这样在编写代码时不会被混淆。
删除学生信息是已知学号进行删除的。系统通过录入功能录入了学生信息,在通过输入学号与后台数据库中已存的学号进行比较,若相等则删除,否则不删除并给出相应提示。
截图4
图3-7 删除学生信息
代码编写要点和代码说明:
new StudentDAO().delete(textBoxsno.Text.Trim());这行代码是把输入的学号(textBoxsno中的内容)作为一个参数传到StudentDAO类中delete构造函数中,然后与 后台中已存在的学号进行比较。
public void delete(string sno)
{ string sql = "delete from student where sno=@sno";//定义一个字符串变量并赋值
SqlParameter[] para = new SqlParameter[]//"SqlParameter"是系统中的类,属于不能继承的类。值引用是不能够继承的。此行是类的实例化
{new SqlParameter("sno",SqlDbType.NChar)// "SqlDbType"指定特定的字段和数据类型 };
int i = 0;para[i++].Value = sno;
sqlhelper.ExecuteNonQuery(sql, para)//传递参数到SQLhelper中,与后台已存数据进行比较之后做出相应的参考}。
3.7 查找学生信息模块设计
查找学生信息是以知道学生的学号为前提,只要后台数据库中已经录入一些学生的信息,正确输入学生学号即可查找到要查找的学生信息。实现这个功能,首先要创建一个窗体,设置一些控件。点击这些控件进行代码的编写。下面是查找学生信息模块的截图。
截图 5
图3-8 查询学生信息
查询关键代码的设计和简单说明:
点击确定按钮进入代码编辑位置,进行代码的编写。
if (textBox1sno.Text == "" )//判断学号输入处是否为空
bind();//调用构造函数
else {bs.DataSource = new SQLHelper().CreateTable1(textBox1sno.Text.Trim());
dataGridView2.DataSource = bs;}//不相等时, 通过数据源(DataSource)这个渠道把控件(dataGridView1)与反馈数据绑定在一起,在控件(dataGrrridView1)中显示table表。
private void bind(){MessageBox.Show("查询失败,请重新输入!", "提示");textBox1sno.Focus()//光标返回到开始;
return;}
3.8 修改学生信息模块设计
用户录入学生信息之后并且发现录入有误,这时就可以使用修改功能。点击修改按钮进入修改界面,输入要修改的学生的学号,再修改学生的其他的信息。
点击确定按钮,进入编辑位置,进行代码的编写。下面是修改界面的的截图。
截图 6
图 3-9 修改学生信息
修改关键代码的设计和简单说明:
点击确定按钮进入编写代码位置,进行代码编写。(string sno = textBoxsno.Text.Trim();string sname = textBoxsname.Text.Trim();string sex = comboBoxsex.Text.Trim();string sbirthday = textBoxsbirthday.Text.Trim();)这几段代码是定义字符串变量,将各种控件中的内容赋值给变量。这句“new StudentDAO().modify(sno, sname, sex, sbirthday)”代码含义是指将参数传入到modify构造函数中,进行相应的操作。
“update student set sname=@sname where sno=@sno update student set sex=@sex”
这串代码是用于后台数据库的更新,从而实现系统删除功能的实现。
第四章 系统测试
第四章 系统测试
4.1 登录测试
图4—1 登录测试
输入用户名和密码,进入学生信息管理系统:
图4—1 登录测试
4.2 录入测试
现在系统中有五个学生信息,使用录入功能录入一个学号为“006号”的学生信息,如图所示:
图 4-2 录入测试
4.3 删除测试
上图已存在六个学生的信息,现要删除学号为”002号、006号“的学生信息。操作结果如图所示:
图4-3 删除测试
4.4 查找测试
查询学号为”001号“学生的信息,查询结果如图所示:
图4-4 查询学生信息
4.5 修改测试
修改学号为”003号“的学生信息。如图所示:分别将姓名、性别、出生日期中信息改为“王小宝、女、1990-12-01”。修改后的结果如图所示:
图4-5 修改学生信息
第五章 设计感悟
第5章 结论
通过这段时间的学习,让我对C#有了新的认识。要想学好这门语言,需要长期的知识积累和上机实践并且不断地总结经验。在用C#开发一个项目时,遇到自己不能解决的问题可以通过积极思考、查询资料、询问老师、同学这些方式来解决。
这次我设计的课题是学生信息管理系统。在设计这个课题的过程中,面对着许多问题,,在本次设计过程中,我是逐步对每个模块进行编码设计,完成每个功能。要求在每个阶段结束之前通过人工检查,完善每个模块的功能,尽早发现错误并纠正,完成每个模块测试之后再进行系统测试。
致谢
致谢
这次课程设计主要感谢我们的指导老师(王磊)。在这个项目刚刚确定下来,我们一头雾水,不知如何开发。因此前期的制作,主要是老师和我们一起开发并且给我们讲解。在老师的引导下,我们逐步完成了整个项目的研发。在这里我们感谢指导老师。
参考文献
参考文献
[1]王珊,萨师煊《数据库系统概述》,高等教育出版社
[2] 《C#高级程序设计》,清华大学出版社
附录:程序清单
附录:程序清单
//登录
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
namespace StudentMIs
{
public partial class Formlogin : Form
{
public Formlogin()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//调用dataaccesslayer层的login()方法,
SQLHelper sqlhelper = new SQLHelper();
int total = sqlhelper.login(textBoxusername.Text.Trim(), textBoxpasword.Text.Trim());
if (total > 0)
{
FormMain main = new FormMain();
main.Show();
this.Hide();
}
else
{
textBoxusername.Text = "";
textBoxpasword.Text = "";
textBoxusername.Focus();
MessageBox.Show("用户名或密码错误", "警告", MessageBoxButtons.OK);
}
}
private void label2_Click(object sender, EventArgs e)
{ }
private void Formlogin_Load(object sender, EventArgs e)
{ }
private void textBoxpasword_TextChanged(object sender, EventArgs e)
{ }
}
}
//FormMain主界面
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
namespace StudentMIs
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void 录入学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAddStudent addstudent = new FormAddStudent();
addstudent.ShowDialog();
if (addstudent.DialogResult==DialogResult .OK)
{
bind();
}
}
BindingSource bs = new BindingSource();
public void bind()
{
bs.DataSource = new SQLHelper().CreateTable();
dataGridView1.DataSource = bs}
private void FormMain_Load(object sender, EventArgs e)
{bind();}
private void 删除学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
FormDeleteStudent delete = new FormDeleteStudent();
delete.ShowDialog();
//刷新网格
if ( delete.DialogResult == DialogResult.OK)
{bind(); }
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{ }
private void 档案ToolStripMenuItem_Click(object sender, EventArgs e)
{}
private void 查询学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
Studentserch search = new Studentserch();
search.ShowDialog();
}
private void 修改学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
Studentmodify modify = new Studentmodify();
modify.ShowDialog();
if (modify.DialogResult == DialogResult.OK)
{bind()}
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 注销ToolStripMenuItem_Click(object sender, EventArgs e)
{
Formlogin login = new Formlogin();
login.ShowDialog();
}
}
}
//录入
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
using System.Data.SqlClient;
namespace StudentMIs
{
public partial class FormAddStudent : Form
{
public FormAddStudent()
{
InitializeComponent();
}
private void buttonok_Click(object sender, EventArgs e)
{
string 学号= textBoxsno.Text.Trim();
string 姓名= textBoxsname.Text.Trim();
string 性别= comboBoxsex.Text.Trim();
string 日期= textBoxbirthday.Text.Trim();
try
{
new StudentDAO().insert(学号, 姓名, 性别, 日期);
this.DialogResult = DialogResult.OK;
MessageBox.Show("录入成功", "提示");
}
catch (SqlException ex)
{
switch (ex.Number)
{
case 2627:
MessageBox.Show("已经存在此学号!请检查。", "错误:", MessageBoxButtons.OK, MessageBoxIcon.Error);
break; default:
string info = string.Format("访问数据库出错!\n具体原因为:{0}\n错误代码:{1}", ex.Message, ex.Number);
MessageBox.Show(info);
break;
}
return;
}
catch (Exception err)
{
MessageBox.Show(err.Message, "出错了:", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
private void label1_Click(object sender, EventArgs e)
{ }
private void FormAddStudent_Load(object sender, EventArgs e)
{}
private void textBoxsno_TextChanged(object sender, EventArgs e)
{}
private void buttoncancel_Click(object sender, EventArgs e)
{
Close();
}
}
}
//删除
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
using System.Data.SqlClient;
namespace StudentMIs
{
public partial class FormDeleteStudent : Form
{
public FormDeleteStudent()
{
InitializeComponent();
}
private void buttonok_Click(object sender, EventArgs e)
{
new StudentDAO().delete(textBoxsno.Text.Trim());
this.DialogResult = DialogResult.OK;
MessageBox.Show("删除成功", "提示");}
private void FormDeleteStudent_Load(object sender, EventArgs e)
{}
private void textBoxsno_TextChanged(object sender, EventArgs e)
{}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}
//查找
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using DataAccessLayer;
namespace StudentMIs
{
public partial class Studentserch : Form
{
public Studentserch()
{
InitializeComponent();
}
private void StdentSelect_Load(object sender, EventArgs e)
{ }
private void textBox1_TextChanged(object sender, EventArgs e)
{ }
BindingSource bs = new BindingSource();
private void buttonok_Click(object sender, EventArgs e)
{
if (textBox1sno.Text == "" )
bind();
else
{
bs.DataSource = new SQLHelper().CreateTable1(textBox1sno.Text.Trim());
dataGridView2.DataSource = bs;}}
private void bind()
{
MessageBox.Show("查询失败,请重新输入!", "提示");
textBox1sno.Focus();
return;
}
private void textBox1_TextChanged_1(object sender, EventArgs e)
{ }
private void buttoncancle_Click(object sender, EventArgs e)
{ }
private void textBoxsno_TextChanged(object sender, EventArgs e)
{ }
private void textBoxsname_TextChanged(object sender, EventArgs e)
{ }
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{ }
private void button1_Click(object sender, EventArgs e)
{
Close();
}
}
}
//修改
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DataAccessLayer;
namespace StudentMIs
{
public partial class Studentmodify : Form
{
public Studentmodify()
{
InitializeComponent();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{ }
private void button0k_Click(object sender, EventArgs e)
{
string sno = textBoxsno.Text.Trim();
string sname = textBoxsname.Text.Trim();
string sex = comboBoxsex.Text.Trim();
string sbirthday = textBoxsbirthday.Text.Trim();
new StudentDAO().modify(sno, sname, sex, sbirthday);
this.DialogResult = DialogResult.OK;
MessageBox.Show("修改成功!", "提示");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{ }
private void Studentmodify_Load(object sender, EventArgs e)
{ }
private void textBoxsname_TextChanged(object sender, EventArgs e)
{ }
private void textBoxsbirthday_TextChanged(object sender, EventArgs e)
{ }
private void buttoncancle_Click(object sender, EventArgs e)
{
Close();
}
}
}
//SQLHELPER
/*
*
*
*
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
namespace DataAccessLayer
{
public class SQLHelper{
public int login(string 用户名, string 密码)//负责登陆数据库的方法
{
string connstr = @"server=.\;database=student;integrated security=sspi";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select count(*) from tlogin where username=@un and password=@pwd";
cmd.Parameters.Add(new SqlParameter("un", 用户名));
cmd.Parameters.Add(new SqlParameter("pwd", 密码));
int total = Convert.ToInt32(cmd.ExecuteScalar()); //返回值类型不确定,是一个object
return total;
}
}
}
public void ExecuteNonQuery(string sql, params SqlParameter[] para)
{
string connstr = @"server= .\ ;database=student;integrated security=sspi";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(para);
cmd.ExecuteNonQuery();
}
}
}
public DataTable CreateTable()
{
DataTable table = new DataTable();
string connstr = @"server= .\ ;database=student;integrated security=sspi";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
string sql = "select * from student";
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn))
{
adapter.Fill(table);
return table;
}
}
}
public DataTable CreateTable1(string 学号)
{
DataTable table = new DataTable();
string connstr = @"server= .\ ;database=student;integrated security=sspi";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select sno 学号,sname 姓名,sex 性别,birthday 出生日期from student where sno=@sno";
cmd.Parameters.Add(new SqlParameter("sno", 学号));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(table);
return table;
}
}
}
}
}
//StudentDAO
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace DataAccessLayer
{
public class StudentDAO
{
private SQLHelper sqlhelper = null;
public StudentDAO()
{
sqlhelper = new SQLHelper();
}
//增加
public void insert(string sno, string sname, string sex, string birthday)
{
string sql = "insert into student values(@sno,@sname,@sex,@birthday)";
SqlParameter[] para = new SqlParameter[] {
new SqlParameter("sno",SqlDbType.NChar),
new SqlParameter("sname",SqlDbType.NVarChar),
new SqlParameter("sex",SqlDbType.NChar),
new SqlParameter("birthday",SqlDbType.NChar )
};
int i = 0;
para[i++].Value = sno;
para[i++].Value = sname;
para[i++].Value = sex;
para[i++].Value = birthday;
sqlhelper.ExecuteNonQuery(sql, para);
}
//删除
public void delete(string sno)
{
string sql = "delete from student where sno=@sno";
SqlParameter[] para = new SqlParameter[] {
new SqlParameter("sno",SqlDbType.NChar)
};
int i = 0;
para[i++].Value = sno;
sqlhelper.ExecuteNonQuery(sql, para);
}
//修改
public void modify(string sno, string sname, string sex, string birthday)
{
string sql = "update student set sname=@sname where sno=@sno update student set sex=@sex where sno=@sno update student set birthday=@birthday where sno=@sno";
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter ("sno",SqlDbType .NChar),
new SqlParameter ("sname",SqlDbType .NVarChar ),
new SqlParameter ("sex",SqlDbType .NChar ),
new SqlParameter ("birthday",SqlDbType .NChar )
};
int i = 0;
para[i++].Value = sno;
para[i++].Value = sname;
para[i++].Value = sex;
para[i++].Value = birthday;
sqlhelper.ExecuteNonQuery(sql, para);
}
}
}
本文来源:https://www.2haoxitong.net/k/doc/fcf07d6d6e1aff00bed5b9f3f90f76c660374cc9.html
文档为doc格式