晚饭吃过没

//在NuGet程序包下载并安装Microsoft.Data.SqlClient

//数据库名studentmanage,数据表名studentscore

//学号文本框txtNum、姓名文本框txtName、成绩文本框txtScore

//查询按钮btnQuery、增加按钮btnAdd、修改按钮btnUpdate、删除按钮btnDelete

using System;
using System.Data;
using Microsoft.Data.SqlClient;
using System.Windows.Forms;

namespace ten
{
    public partial class Form1 : Form
    {
        private SqlConnection conn;  // 声明一个SqlConnection对象,用于与SQL Server数据库建立连接

        // 构造函数,初始化窗体并连接到数据库
        public Form1()
        {
            InitializeComponent();  // 初始化窗体组件
            ConnectToDatabase();  // 调用方法连接数据库
        }

        // 连接到数据库
        private void ConnectToDatabase()
        {
            // 连接字符串,指定数据库的服务器地址、数据库名称及身份验证方式
            string connectionString = "Data Source=localhost;Initial Catalog=studentmanage;Integrated Security=True;Encrypt=True;TrustServerCertificate=True";
            conn = new SqlConnection(connectionString);  // 使用连接字符串初始化SqlConnection对象
            try
            {
                conn.Open();  // 打开数据库连接
                MessageBox.Show("数据库连接成功!");  // 连接成功提示
            }
            catch (Exception ex)
            {
                MessageBox.Show($"数据库连接失败: {ex.Message}");  // 连接失败时显示错误消息
            }
        }

        // 查询按钮点击事件
        private void btnQuery_Click(object sender, EventArgs e)
        {
            try
            {
                // 构建查询SQL语句,初步查询所有数据
                string query = "SELECT * FROM studentscore WHERE 1=1";
                if (!string.IsNullOrEmpty(txtNum.Text))  // 如果输入了学生编号,添加相应的查询条件
                    query += " AND num = @num";
                if (!string.IsNullOrEmpty(txtName.Text))  // 如果输入了学生姓名,添加相应的查询条件
                    query += " AND name = @name";
                if (!string.IsNullOrEmpty(txtScore.Text))  // 如果输入了学生成绩,添加相应的查询条件
                    query += " AND score = @score";

                // 确保数据库连接已经打开
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();  // 如果连接没有打开,则打开连接
                }

                SqlCommand cmd = new SqlCommand(query, conn);  // 创建SqlCommand对象来执行SQL查询

                // 绑定查询条件的参数
                if (!string.IsNullOrEmpty(txtNum.Text))
                    cmd.Parameters.AddWithValue("@num", txtNum.Text);
                if (!string.IsNullOrEmpty(txtName.Text))
                    cmd.Parameters.AddWithValue("@name", txtName.Text);
                if (!string.IsNullOrEmpty(txtScore.Text))
                    cmd.Parameters.AddWithValue("@score", txtScore.Text);

                SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);  // 创建SqlDataAdapter来执行查询并填充DataTable
                DataTable dataTable = new DataTable();  // 创建一个DataTable对象来存放查询结果
                dataAdapter.Fill(dataTable);  // 将查询结果填充到DataTable中

                dataGridView.DataSource = dataTable;  // 将查询结果显示在DataGridView控件中
            }
            catch (Exception ex)
            {
                MessageBox.Show($"查询失败: {ex.Message}");  // 如果查询发生异常,显示错误消息
            }
        }

        // 添加按钮点击事件
        private void btnAdd_Click(object sender, EventArgs e)
        {
            // 构建插入数据的SQL语句
            string query = "INSERT INTO studentscore (num, name, score) VALUES (@num, @name, @score)";
            SqlCommand cmd = new SqlCommand(query, conn);  // 创建SqlCommand对象
            // 绑定插入数据的参数
            cmd.Parameters.AddWithValue("@num", txtNum.Text);
            cmd.Parameters.AddWithValue("@name", txtName.Text);
            cmd.Parameters.AddWithValue("@score", txtScore.Text);

            try
            {
                cmd.ExecuteNonQuery();  // 执行插入操作
                MessageBox.Show("数据插入成功!");  // 插入成功提示
                btnQuery_Click(sender, e);  // 重新加载查询结果
            }
            catch (Exception ex)
            {
                MessageBox.Show($"插入失败: {ex.Message}");  // 插入失败时显示错误消息
            }
        }

        // 更新按钮点击事件
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            // 构建更新数据的SQL语句
            string query = "UPDATE studentscore SET name = @name, score = @score WHERE num = @num";
            SqlCommand cmd = new SqlCommand(query, conn);  // 创建SqlCommand对象
            // 绑定更新数据的参数
            cmd.Parameters.AddWithValue("@num", txtNum.Text);
            cmd.Parameters.AddWithValue("@name", txtName.Text);
            cmd.Parameters.AddWithValue("@score", txtScore.Text);

            try
            {
                cmd.ExecuteNonQuery();  // 执行更新操作
                MessageBox.Show("数据更新成功!");  // 更新成功提示
                btnQuery_Click(sender, e);  // 重新加载查询结果
            }
            catch (Exception ex)
            {
                MessageBox.Show($"更新失败: {ex.Message}");  // 更新失败时显示错误消息
            }
        }

        // 删除按钮点击事件
        private void btnDelete_Click(object sender, EventArgs e)
        {
            // 构建删除数据的SQL语句
            string query = "DELETE FROM studentscore WHERE num = @num";
            SqlCommand cmd = new SqlCommand(query, conn);  // 创建SqlCommand对象
            cmd.Parameters.AddWithValue("@num", txtNum.Text);  // 绑定删除数据的参数

            try
            {
                cmd.ExecuteNonQuery();  // 执行删除操作
                MessageBox.Show("数据删除成功!");  // 删除成功提示
                btnQuery_Click(sender, e);  // 重新加载查询结果
            }
            catch (Exception ex)
            {
                MessageBox.Show($"删除失败: {ex.Message}");  // 删除失败时显示错误消息
            }
        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值