//在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}"); // 删除失败时显示错误消息
}
}
}
}