手把手教你用SQLServer连接Visual Studio2019并编写一个学生信息管理页面

这篇具有很好参考价值的文章主要介绍了手把手教你用SQLServer连接Visual Studio2019并编写一个学生信息管理页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

安装SQLServer

创建新项目

建数据库建表

窗体设计

代码实现

 整体效果


安装SQLServer

用SQLServer连接Visual Studio,首先需要下载SQLServer app。

下载教程,我之前写过,可以点击如下链接先下载安装SQLServer:

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

SQL Server(express)安装教程

创建新项目

安装好SQL之后,打开VisualStudio2019,新建一个window项目

,步骤如下:选择创建新项目

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

选择Windows窗体应用(.NET Framework)  点击下一步。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

给文件命名为:WinFormsApplicationStudentManagement ,点击下一步

 vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 点击创建,就建好了

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

建数据库建表

项目建好之后我们先连接数据库。

1.找到服务器资源管理器

2.找到数据连接,右键,添加连接

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

数据源选择Microsoft SQL Server数据库文件(SqlClient)

数据库文件名输入StudentManagement 这是我们创建的数据库的名称

登录方式身份验证,选Windows身份验证

点击确定

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

点击这样就建好了数据库

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 下面我们新建两个表。

一个student表,存储学号(主键)、姓名、年龄、分数。

一个college表,存储专业号(主键),和专业名。

按照步骤:

选择刚建好的数据库,双击打开。

打开后找到表,右键,选择添加新表

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 添加新表后,会出现如下界面:

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

按照我这样设计表,设计完成后,点击更新  注意要更改表名。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库 点击更新后,会出现如下界面:点击更新数据库即可。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

点击更新数据库按钮。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 这是刷新之后的样子,能看到刚才建立的student表。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 同样方法,我们新建一个college表。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 这是college表建好之后的样子。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

窗体设计

表建好了,我们开始设计窗体。

打开Form1.cs[Design]

设计如下页面

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 布局如下:

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

组件在工具箱中添加;

组件name text 事件在属性中编辑

左部:name=groupbox1 text=学生列表

中间:name=groupbox2 text=学生详情

右边:name=groupbox3 text=操作

下边:richtextbox name=rtxtStudentList

写完是这样的。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 再来设计里面的界面:

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

设计好之后

label改text 分别改成 学号 姓名 年龄 分数

textbox改name 分别是txtId txtName txtAge txtScore

button改name和text

name分别改成 btnnew btnInsert btnUpdate btnDelete btnSave

text分别改成 新建 插入 更新 删除 保存

ComboBox改name改成cboColleges

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 忘了,学生列表里还要建一个listbox 名字是listStudent

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 布局部分完成了。

开始写代码了。

代码实现

我们使用的是Sqlconnection连接数据库,所以要新增引用

using System.Data.SqlClient;

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

找到数据库,右键属性,找到连接字符串,全选复制到代码中。

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

 我这是连好的:

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

之后的代码如下:

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 System.Data.SqlClient;

namespace WindowsFormsApplicationNonetSql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            LoadDatabase();
            BindStudentList();
            BindCollegeList();
        }
        string connectionString = @"Data Source=pc\sqlexpress;Initial Catalog=ailintext;Integrated Security=True";

        DataSet dataSet = new DataSet();

        DataTable students;
        DataTable colleges;
        private void BindStudentList()
        {

            listStudent.SelectedIndexChanged -= listStudent_SelectedIndexChanged;
            listStudent.DataSource = students;
            listStudent.DisplayMember = "student_name";
            listStudent.ValueMember = "student_id";
            listStudent.SelectedIndexChanged += listStudent_SelectedIndexChanged;

        }
        private void BindCollegeList()
        {

            listStudent.SelectedIndexChanged -= cboColleges_SelectedIndexChanged;
            cboColleges.DataSource = colleges;
            cboColleges.DisplayMember = "college_name";
            cboColleges.ValueMember = "college_id";
            listStudent.SelectedIndexChanged += cboColleges_SelectedIndexChanged;

        }

        private void LoadDatabase()
        {
            SqlConnection connection =new SqlConnection(connectionString);

            string selectCommand = "select * from student";

            SqlCommand command = new SqlCommand();
            command.CommandText = selectCommand;
            command.Connection = connection;
            //适配器
            SqlDataAdapter studentAdapter = new SqlDataAdapter();
            studentAdapter.SelectCommand = command;
            //读入数据 适配器填充数据
            studentAdapter.Fill(dataSet, "student");

            students = dataSet.Tables["student"];
            /*command.CommandText = "select * from college";*/

            /* SqlDataAdapter collegeAdapter = new SqlDataAdapter(command);
             collegeAdapter.Fill(dataSet, "college");

             colleges = dataSet.Tables["college"];*/
            students.PrimaryKey = new DataColumn[]
            {
               students.Columns["student_id"]
            };


            selectCommand = "select * from college";
            command.CommandText = selectCommand;

            SqlDataAdapter collegeAdapter = new SqlDataAdapter();
            collegeAdapter.SelectCommand = command;

            collegeAdapter.Fill(dataSet, "college");
            colleges = dataSet.Tables["college"];

            colleges.PrimaryKey = new DataColumn[]
            {
                colleges.Columns["college_id"]
            };
            DataRelation dr = new DataRelation(
                "FK_student_college",
                colleges.Columns["college_id"],
                students.Columns["college_id"]);

            dataSet.Relations.Add(dr);
        }

        private void listStudent_SelectedIndexChanged(object sender, EventArgs e)
        {
            //点击学生姓名,返回学生信息
            if (listStudent.SelectedIndex < 0)
            {
                return ;
            }
            //拿到信息
            DataRow student = students.Rows.Find(listStudent.SelectedValue);
            //显示信息
            txtId.Text = student["student_id"].ToString();
            txtName.Text = student["student_name"].ToString();
            txtAge.Text = student["student_age"].ToString();
            txtScore.Text = student["student_score"].ToString();

            cboColleges.SelectedValue = student["college_id"];

        }

        private void btnnew_Click(object sender, EventArgs e)
        {
            txtId.Text = string.Empty;
            txtName.Text = string.Empty;
            txtAge.Text = string.Empty;
            txtScore.Text = string.Empty;
        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            DataRow newStudent = students.NewRow();

            newStudent["student_id"] = txtId.Text;
            newStudent["student_name"] = txtName.Text;
            newStudent["student_age"] = txtAge.Text;
            newStudent["student_score"] = txtScore.Text;

            students.Rows.Add(newStudent);
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtId.Text))
            {
                return;
            }

            listStudent.SelectedIndexChanged -= listStudent_SelectedIndexChanged;

            DataRow oldStudent = students.Rows.Find(txtId.Text);

            oldStudent["student_id"] = txtId.Text;
            oldStudent["student_name"] = txtName.Text;
            oldStudent["student_age"] = txtAge.Text;
            oldStudent["student_score"] = txtScore.Text;

            if (cboColleges.SelectedIndex >= 0)
            {
                oldStudent["college_id"] = cboColleges.SelectedValue;
            }
            listStudent.SelectedIndexChanged += listStudent_SelectedIndexChanged;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection(connectionString);

            string selectCommand = "select * from student";

            SqlCommand command = new SqlCommand();
            //command.CommandText = "select * from student";
            command.CommandText = selectCommand;
            command.Connection = connection;
            //适配器
            SqlDataAdapter studentAdapter = new SqlDataAdapter();
            studentAdapter.SelectCommand = command;
            //
            SqlCommandBuilder studentCommandBuilder = new SqlCommandBuilder();
            studentCommandBuilder.DataAdapter = studentAdapter;

            studentAdapter.Update(students);
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtId.Text))
            {
                return;
            }
            DataRow oldStudent = students.Rows.Find(txtId.Text);
            oldStudent.Delete();
        }

        private void cboColleges_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cboColleges.SelectedIndex < 0)
            {
                return;
            }

            DataRow college = colleges.Rows.Find(cboColleges.SelectedValue);

            string s = string.Empty;

            foreach(var item in college.GetChildRows(dataSet.Relations["FK_student_college"]))
            {
                s += item["student_id"] + "\t" + item["student_name"];
            }
            rtxtStudentList.Text = s;
        }
    }
}
//单表改

 整体效果

vs和sql做一个学生管理系统,C#,数据库原理,c#,sqlserver,visual studio,数据库

源码下载:

链接:https://pan.baidu.com/s/1AksyhybGOjPy_3sgX_YqYw
提取码:5ae1

用我的代码 改一下数据库连接字符串即可。仍有问题可以私信我,看到就回~文章来源地址https://www.toymoban.com/news/detail-519444.html

到了这里,关于手把手教你用SQLServer连接Visual Studio2019并编写一个学生信息管理页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你用jmeter做压力测试(详图)

    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工

    2024年02月02日
    浏览(46)
  • 手把手教你用video实现视频播放功能

    哈喽。大家好啊 今天需要做一个视频播放列表,让我想到了video的属性 下面让我们先看看实现效果 这里是我的代码 width是当前播放页面的宽度 height是当前播放页面的高度 Controls属性用就是控制栏那些了 比如播放按钮 暂停按钮 autoplay是指的是自动播放 poster是指的是初始化进

    2024年02月12日
    浏览(50)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(49)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(56)
  • 手把手教你用Python实现2048小游戏

    感觉好久没有写小游戏玩了,今天恰巧有空.这次我来用Python做个2048小游戏吧.废话不多说,文中有非常详细的代码示例,需要的朋友可以参考下 目录 一、开发环境 二、环境搭建 三、原理介绍 四、效果图 Python版本:3.6.4 相关模块: pygame模块; 以及一些Python自带的模块。 安装

    2024年04月28日
    浏览(69)
  • 手把手教你用UNet做医学图像分割系统

    兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数

    2024年02月03日
    浏览(71)
  • 手把手教你用git上传项目到GitHub

    github的官方网址:https://github.com ,如果没有账号,赶紧注册一个。 点击Sign in进入登录界面,输入账号和密码登入github。 创建成功可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。 Git是目

    2024年01月18日
    浏览(49)
  • 手把手教你用Git——详解git merge

    关于本教程的编写环境 本文基于 Windows10系统 , Mac 系统的小伙伴可以尝试 Homebrew 。由于本人手里并没有搭载 MacOS 的电脑,因此 Homebrew 相关的使用请自行尝试。 对于使用 Windows11系统 的小伙伴,本文的教程是通用的,不过一些细节可能略有不同,这点希望小伙伴们注意一下

    2024年02月05日
    浏览(48)
  • 爬虫实战|手把手教你用Python爬虫(附详细源码)

    实践来源于理论,做爬虫前肯定要先了解相关的规则和原理,要知道互联网可不是法外之地,你一顿爬虫骚操作搞不好哪天就…  首先,咱先看下爬虫的定义:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自

    2024年02月02日
    浏览(79)
  • 手把手教你用Python编写配置脚本引擎(福利篇)

    版权声明:原创不易,本文禁止抄袭、转载需附上链接,侵权必究! 配置信息初始化 定义配置引擎类和初始化方法,其中有两个属性,配置实例对象及配置文件路径: 将配置信息写入到配置文件中,该方法有三个形参,category(配置信息类别),name(配置字段名称),value(配置字

    2024年02月06日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包