C#实现学生模块的增删改查

本文实例为大家分享了C#实现学生模块的增删改查的具体代码,供大家参考,具体内容如下

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

namespace text3_CRUD
{
    public partial class Form1 : Form
    {
        //把连接数据库的字符串提取出来,就不用每次都要写,增加代码复用性
        private string str = "data source=本地IP;initial catalog=数据库名;user ID=用户名;pwd=密码";

        public Form1()
        {
            InitializeComponent();
   
        }
       
        private void TextBox5_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Label10_Click(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// 添加学生信息档案
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButAdd_Click(object sender, EventArgs e)
        {
            //获取各个文本框的数据
            string name = txtname.Text;
            string sex = txtsex.Text;
            string college = txtcollege.Text;
            string id = txtid.Text;
            string grade = txtgrade.Text;
            string phone = txtphone.Text;
            string email = txtemail.Text;
            string qq = txtqq.Text;
            string room = txtroom.Text;

            using (var conn = new SqlConnection(this.str))//定义一个数据库连接实例
            {
                conn.Open();//打开数据库
                
                Form1 f = new Form1();//实例化Form1窗体对象

                if (f.Existence(id, conn))//检查数据库 存不存在此条记录,存在则插入
                {
                    SqlParameter[] para = new SqlParameter[]//构建存储过程的输入参数
                    {
                        new SqlParameter("@name",name),
                        new SqlParameter("@sex", sex),
                        new SqlParameter("@college", college),
                        new SqlParameter("@id", id),
                        new SqlParameter("@grade", grade),
                        new SqlParameter("@phone", phone),
                        new SqlParameter("@email", email),
                        new SqlParameter("@qq", qq),
                        new SqlParameter("@room", room),

                    };

                    string sql = "insert into Students values(@name, @sex, @college, @id, @grade, @phone, @email, @qq, @room);";//定义一个数据库操作指令集

                    SqlCommand com = new SqlCommand(sql, conn);//执行数据库操作指令

                    com.Parameters.AddRange(para);//將参数和命令对象的参数集合绑定
                    int result = (int)com.ExecuteNonQuery();//针对Connection执行的SQL语句,返回受影响的行数,result > 0则表示SQL语句执行成功
                    if (result > 0)
                    {
                        MessageBox.Show("添加成功!");//弹窗显示“添加成功” 
                        this.Form1_Load_1(null, null);//刷新数据
                        
                    }
                    else
                    {
                        MessageBox.Show("添加失败!");
                    }
                    
                }
                else
                {
                    MessageBox.Show("数据已经存在!");
                }
                conn.Close();//关闭数据库
                //Application.Exit();//关闭整个应用程序

            }
        }

        /// <summary>
        /// 根据ID值判断数据表Students中是否存在这个人,存在返回false,不存在返回true
        /// </summary>
        /// <param name="id"></param>
        /// <param name="conn"></param>
        /// <returns></returns>
        public bool Existence(string id, SqlConnection conn)
        {
            string txtStr = string.Format( "select id from Students where id = '{0}' " ,id);//定义一个数据库操作指令集
            SqlDataAdapter sda = new SqlDataAdapter(txtStr, conn);//定义一个数据库适配器
            DataSet ds = new DataSet();//定义数据集合
            sda.Fill(ds);//填充数据集合
            DataTable dt = ds.Tables[0];//將数据集合中的第一张表赋值给DataTable
            if(dt.Rows.Count > 0)   //count > 0表示有数据
            {
                return false;
            }
            else
            {
                return true;
            }
            
        }
        /// <summary>
        /// 对数据库进行的动态查询,不管用户掌握的信息有多少都可以查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSelect_Click(object sender, EventArgs e)
        {
            //获取各个文本框的数据
            string name = txtname.Text;
            string sex = txtsex.Text;
            string college = txtcollege.Text;
            string id = txtid.Text;
            string grade = txtgrade.Text;
            string phone = txtphone.Text;
            string email = txtemail.Text;
            string qq = txtqq.Text;
            string room = txtroom.Text;

            using(var conn = new SqlConnection(this.str))//定义一个数据库连接实例
            {
                conn.Open();//打开数据库
                StringBuilder sb = new StringBuilder();//创建一个字符串变量
                sb.Append("select name, sex, college, id, grade,phone, email, qq, room from Students where 1=1");
                //判断用户有没有给出其它的查询条件,有则添加进sql语句
                if (name != "")
                {
                    sb.AppendFormat(" and name = '{0}'", name);
                }
                if (sex != "")
                {
                    sb.AppendFormat(" and sex = '{0}'", sex);
                }
                if (college != "")
                {
                    sb.AppendFormat(" and college = '{0}'", college);
                }
                if (id != "")
                {
                    sb.AppendFormat(" and id = '{0}'", id);
                }
                if (grade != "")
                {
                    sb.AppendFormat(" and grade = '{0}'", grade);
                }
                if (phone != "")
                {
                    sb.AppendFormat(" and phone = '{0}'", phone);
                }
                if (email != "")
                {
                    sb.AppendFormat(" and email = '{0}'", email);
                }
                if (qq != "")
                {
                    sb.AppendFormat(" and qq = '{0}'", qq);
                }
                if (room != "")
                {
                    sb.AppendFormat(" and room = '{0}'", room);
                }
                string sql = sb.ToString();
                SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();//定义一个数据集合
                adapter.Fill(ds);//填充数据集合
                dataGridView1.DataSource = ds.Tables[0];//把数据集合绑定到dataGridView上,dataGridView会以表格的形式显示出来
                conn.Close();//关闭数据库

            }
        }
        /// <summary>
        /// 修改学生信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnUpdate_Click(object sender, EventArgs e)
        {
            //获取各个文本框的数据
            string name = txtname.Text;
            string sex = txtsex.Text;
            string college = txtcollege.Text;
            string id = txtid.Text;
            string grade = txtgrade.Text;
            string phone = txtphone.Text;
            string email = txtemail.Text;
            string qq = txtqq.Text;
            string room = txtroom.Text;

            //构建存储过程的输入参数
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@name",name),
                new SqlParameter("@sex", sex),
                new SqlParameter("@college", college),
                new SqlParameter("@id", id),
                new SqlParameter("@grade", grade),
                new SqlParameter("@phone", phone),
                new SqlParameter("@email", email),
                new SqlParameter("@qq", qq),
                new SqlParameter("@room", room)
            };
            using(var conn = new SqlConnection(this.str))
            {
                conn.Open();//打开数据库;
                string sql = "update Students set name = @name, sex = @sex, college = @college, id = @id, grade = @grade, phone = @phone, email = @email, qq = @qq, room = @room where id = @id";
                SqlCommand com = new SqlCommand(sql, conn);//执行数据库操作指令
                com.Parameters.AddRange(para);//将参数和命令对象的参数集合绑定
                int result = (int)com.ExecuteNonQuery();//查询返回的第一行第一列
                if(result > 0)
                {
                    MessageBox.Show("修改成功!");
                    this.Form1_Load_1(null, null);//修改完数据后,重新刷新属性Form1窗口,以查看变化的内容
                    conn.Close();//关闭数据库
                }
            }

            //SqlDataAdapter sda = new SqlDataAdapter();
        }
        /// <summary>
        /// 刷新DataGridView里的数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load_1(object sender, EventArgs e)
        {
            
            using (var conn = new SqlConnection(this.str))//定义一个数据库连接实例
            {
                conn.Open();//打开数据库
                string sql = "select * from Students";//定义一个数据库操作指令
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);//定义数据库适配器
                DataSet ds = new DataSet();//定义数据集合
                sda.Fill(ds);//填充数据集合
                dataGridView1.DataSource = ds.Tables[0];
                conn.Close();//关闭数据库
            }
        }

        private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }
        /// <summary>
        /// 选中DataGridView的行,这一行的数据返回到对应的文本框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataGridView1_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {   
            //SelectedRows[0] 获取用户选定行的集合(选中的第一行就是0,一次类推)
            //Cells["name"] 获取用于填充行的单元格集合(就是列) .Value就是它的值,最后ToString转字符串
            txtname.Text = dataGridView1.SelectedRows[0].Cells["name"].Value.ToString();
            txtsex.Text = dataGridView1.SelectedRows[0].Cells["sex"].Value.ToString();
            txtcollege.Text = dataGridView1.SelectedRows[0].Cells["college"].Value.ToString();
            txtid.Text = dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
            txtgrade.Text = dataGridView1.SelectedRows[0].Cells["grade"].Value.ToString();
            txtphone.Text = dataGridView1.SelectedRows[0].Cells["phone"].Value.ToString();
            txtemail.Text = dataGridView1.SelectedRows[0].Cells["email"].Value.ToString();
            txtqq.Text = dataGridView1.SelectedRows[0].Cells["qq"].Value.ToString();
            txtroom.Text = dataGridView1.SelectedRows[0].Cells["room"].Value.ToString();
 
        }
        /// <summary>
        /// 删除某个学生的所有数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnDelete_Click(object sender, EventArgs e)
        {
            using(var conn = new SqlConnection(this.str))//创建一个数据库连接实例
            {
                conn.Open();//连接数据库
                string sql = string.Format("delete from Students where id = '{0}'", txtid.Text);//往数据库操作指令中传值
                //如果传的值不是很多的话,就用这种方法;如果有很多就用SqlParameter[]

                SqlCommand com = new SqlCommand(sql, conn);//执行数据库删除指令

                int result = (int)com.ExecuteNonQuery();//返回结果,result > 0则为修改成功
                if(result > 0)
                {
                    MessageBox.Show("删除成功!");
                    this.Form1_Load_1(null, null);//刷新数据
                    conn.Close();//关闭数据库
                }
            }
        }
        /// <summary>
        /// 对文本框进行清空处理,方便重新输入下一个学生信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnClear_Click(object sender, EventArgs e)
        {
            txtname.Text = null;
            txtsex.Text = null;
            txtcollege.Text = null;
            txtid.Text = null;
            txtgrade.Text = null;
            txtphone.Text = null;
            txtemail.Text = null;
            txtqq.Text = null;
            txtroom.Text = null;
        }
    }
}

Students表

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#在winform中实现数据增删改查等功能

    winform中利用ado.net实现对单表的增删改查的详细例子,具体如下: 1.前言: 运行环境:VS2013+SQL2008+Windows10 程序界面预览: 使用的主要控件:dataGridview和menuStrip等.  2.功能具体介绍: 1.首先,我们要先实现基本的数据操作,增删改查这几个操作. (1)先定义一个数据库操作的公共类: using System; using System.Collections.Generic; using System.Linq; using S

  • C#操作Excel数据增删改查示例

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateTime. 工作表2: Order表,字段:OrderNo.ProductName.Quantity.Money.SaleDate. 1.创建ExcelHelper.cs类,Excel文件处理类 复制代码 代码如下: using System; using System.Collections.Gen

  • C#如何实现对sql server数据库的增删改查

    一个专门实现sql server数据库的增删改查,以及将查询的结果返回成表格等功能,分享代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient;//第一步:引用与sql相关的命名空间 using System.Data;//引用表的命名空间 //行注释 ///段落注释 /// <summary> ///第二步: 把

  • C#操作SQLite实现数据的增删改查

    目录 简介 主要代码 SQLiteHelper.cs UsingLock.cs Form1.cs 简介 SQLite是一个轻量级.跨平台的关系型数据库,在小型项目中,方便,易用,同时支持多种开发语言,下面是我用C#语言对SQLite 的一个封装. Winfrom界面如下: 代码还需要改进部分: 下面的代码我不觉得是完美的,读者可以自己去实现这些功能: 1.如果不想用多线程可以去掉UsingLock.cs ,在SQLiteHelper.cs中删除对应的引用即可. 2.创建数据库文件,可以从代码中分

  • C#对Access进行增删改查的完整示例

    这篇文章整理了C#对Access数据库的查询.添加记录.删除记录和更新数据等一系列的操作示例,有需要的可以参考学习. 首先是AccessHelper.cs,网上有下载,下面附送一份: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.OleDb; using System.Data

  • C#实现学生模块的增删改查

    本文实例为大家分享了C#实现学生模块的增删改查的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.

  • 详解Nodejs基于mongoose模块的增删改查的操作

    MongoDB MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销. Mongoose 是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 安装模块mongoose npm install

  • python用pickle模块实现“增删改查”的简易功能

    pickle的作用: 1:pickle.dump(dict,file)把字典转为二进制存入文件. 2:pickle.load(file)把文件二进制内容转为字典 import pickle # 增 def adds(): users = {"name":"yangbin", "age":22, "sex":"male"} with open("red.txt", "wb&quo

  • Java语言实现对MySql数据库中数据的增删改查操作的代码

    简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址(Address),电话(Phone),专业(Dept). 这里把这个表写成一个学生信息类(Info_student) (请先确保看了例子说明,不然代码有的地方可能看不明白) 要实现操纵我们首先得连接数据库,因为每个操作都要进行连接操作,所以我们直接把连接的操作封装在一个类中,需要连接的时候直接调用可

  • iOS CoreData 增删改查详解

    最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然Swift3 已经有了,目前整理的这个版本是Swift2 的.Swift 3 的话有些新特性. 需要另外调整,后续有时间再整理. 继承CoreData有两种方式:  创建项目时集成 这种方式是自动继承在AppDelegate里面,调用的使用需要通过UIApplication的方式来获取AppDeleg

  • 将xml文件作为一个小的数据库,进行学生的增删改查的简单实例

    1.xml文件: <?xml version="1.0" encoding="UTF-8"?><Students> <student id="2"> <name>ttt</name> <age>44</age> </student> <student id="3"> <name>linda2</name

  • Python使用pymysql模块操作mysql增删改查实例分析

    本文实例讲述了Python使用pymysql模块操作mysql增删改查.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123', db='t1', charset='utf8')

  • Spring MVC实现mysql数据库增删改查完整实例

    最近刚学了springmvc框架,感觉确实方便了不少,减少了大量的冗余代码.就自己做了个小项目练练手,这是个初级的springmvc应用的项目,没有用到mybatis,项目功能还算完善,实现了基本的增删改查的功能. 项目环境: -系统:win10 -开发环境:eclipseOxygenReleaseCandidate3(4.7) -jdk版本:java1.8(121) -mysql:5.7 -spring:4.0 -tomcat:8.5 用到的技术: springmvcspringjspjdbc

  • 对Django的restful用法详解(自带的增删改查)

    什么是rest REST是所有Web应用都应该遵守的架构设计指导原则. Representational State Transfer,翻译是"表现层状态转化". 面向资源是REST最明显的特征,对于同一个资源的一组不同的操作.资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词. REST要求,必须通过统一的接口来对资源执行各种操作.对于每个资源只能执行一组有限的操作. GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT(PATCH)用

  • express+mongoose实现对mongodb增删改查操作详解

    本文实例讲述了express+mongoose实现对mongodb增删改查操作.分享给大家供大家参考,具体如下: 项目地址:https://github.com/jrainlau/mongoose_crud 写在开头 本文主要分享我如何使用express+mongoose对mongodb实现增删改查操作,感谢cnode社区所有精品文章的帮助,以及@airuikun的开源项目airuikun/mongoose_crud对我的启发. 学习nodejs已经小半个月了,一直琢磨着做一些什么东西出来.由于

随机推荐