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

目录

安装SQLServer

创建新项目

建数据库建表

窗体设计

代码实现

 整体效果


安装SQLServer

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

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

SQL Server(express)安装教程

创建新项目

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

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

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

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

 

 点击创建,就建好了

建数据库建表

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

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

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

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

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

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

点击确定

点击这样就建好了数据库

 下面我们新建两个表。

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

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

按照步骤:

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

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

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

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

点击更新后,会出现如下界面:点击更新数据库即可。

点击更新数据库按钮。

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

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

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

窗体设计

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

打开Form1.cs[Design]

设计如下页面

 布局如下:

组件在工具箱中添加;

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

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

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

右边:name=groupbox3 text=操作

下边:richtextbox name=rtxtStudentList

写完是这样的。

 再来设计里面的界面:

设计好之后

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

textbox改name 分别是txtId txtName txtAge txtScore

button改name和text

name分别改成 btnnew btnInsert btnUpdate btnDelete btnSave

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

ComboBox改name改成cboColleges

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

 布局部分完成了。

开始写代码了。

代码实现

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

using System.Data.SqlClient;

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

 我这是连好的:

之后的代码如下:

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;
        }
    }
}
//单表改

 整体效果

源码下载:

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

用我的代码 改一下数据库连接字符串即可。仍有问题可以私信我,看到就回~

  • 43
    点赞
  • 291
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论
通达信是一款广受中国投资者喜爱的股票行情分析软件,而编写通达信的插件可以帮助用户更方便地进行股票分析和决策。下面是一个图文手把手教你如何使用VC 2010编写通达信缠论插件的步骤。 第一步:准备工作 1. 确保已经安装好Visual Studio 2010和通达信软件。 2. 打开Visual Studio 2010,创建一个新的C++项目。 第二步:导入相关文件 1. 在项目中右键单击“资源文件”,选择“添加->现有项”。 2. 导航到通达信的安装目录,找到插件相关的头文件和库文件,选择并导入到项目中。 第三步:编写代码 1. 在项目中创建一个新的C++源文件,命名为“plugin.cpp”。 2. 在“plugin.cpp”中编写你的插件代码,可以包括初始化、数据处理、绘图等功能。 第四步:编译和调试 1. 点击Visual Studio 2010的“生成->生成解决方案”菜单,编译你的插件代码。 2. 将编译生成的插件文件(例如“plugin.dll”)复制到通达信的插件目录中。 3. 启动通达信软件,并在菜单栏中找到你的插件,选择并运行它。 第五步:测试和验证 1. 在通达信软件中打开一个股票行情页面,确保你的插件正确运行。 2. 测试你的插件是否能够按照你的预期显示或处理数据。 3. 如果发现错误或需要改进,返回Visual Studio 2010,修改代码后重新编译和调试。 通过以上步骤,你就可以使用VC 2010编写通达信缠论插件了。当然,这只是一个简单的教程示例,实际的插件编写可能涉及更复杂的功能和算法。希望这个回答能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二琳爱吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值