SQL Server 简介
SQL Server 是微软公司开发的关系型数据库管理系统(RDBMS),主要用于数据存储和管理。它支持 SQL 查询语言,并提供了事务处理、数据安全、备份与恢复以及高可用性等关键功能。SQL Server 适用于各种规模的企业应用,能够处理大数据量和高并发的需求,并集成了报表服务、分析服务等高级功能。
本文将介绍如何使用 C# 实现对 SQL Server 数据库的增、删、改、查(CRUD)操作。以下是示例代码:
cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace SQLServerTest
{
class Program
{
// 数据库连接字符串
static string connectionString = "Server=.;Database=SchoolDB;User Id=sa;Password=saabc123;";
static void Main(string[] args)
{
以下是各种操作的示例,当前被注释掉,可以根据需要启用
增加操作
//AddStudent("John Doe", 20, "A");
修改操作
//UpdateStudent(1, "John Doe", 21, "B");
删除操作
//DeleteStudent(1);
// 查找所有学生
GetStudents();
// 等待用户按键后退出程序
Console.ReadKey();
}
// 增加学生
static void AddStudent(string name, int age, string grade)
{
// 定义SQL插入语句
string query = "INSERT INTO Students (Name, Age, Grade) VALUES (@Name, @Age, @Grade)";
// 使用using语句来自动管理数据库连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 创建SQL命令对象,绑定查询语句
SqlCommand cmd = new SqlCommand(query, conn);
// 添加参数,防止SQL注入
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Age", age);
cmd.Parameters.AddWithValue("@Grade", grade);
// 打开连接
conn.Open();
// 执行插入命令,不返回任何数据
cmd.ExecuteNonQuery();
// 输出操作成功的信息
Console.WriteLine($"Student {name} added.");
}
}
// 查找所有学生
static void GetStudents()
{
// 定义SQL查询语句,查询所有学生
string query = "SELECT * FROM Students";
// 使用using语句来自动管理数据库连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 创建一个SQL数据适配器,用于执行查询并填充数据表
SqlDataAdapter da = new SqlDataAdapter(query, conn);
// 创建数据表对象来存储查询结果
DataTable dt = new DataTable();
// 填充数据表
da.Fill(dt);
// 输出查询结果
Console.WriteLine("\nStudents List:");
// 遍历数据表的每一行
foreach (DataRow row in dt.Rows)
{
// 输出每个学生的信息
Console.WriteLine($"Id: {row["Id"]}, Name: {row["Name"]}, Age: {row["Age"]}, Grade: {row["Grade"]}");
}
}
}
// 更新学生信息
static void UpdateStudent(int id, string name, int age, string grade)
{
// 定义SQL更新语句
string query = "UPDATE Students SET Name = @Name, Age = @Age, Grade = @Grade WHERE Id = @Id";
// 使用using语句来自动管理数据库连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 创建SQL命令对象,绑定更新语句
SqlCommand cmd = new SqlCommand(query, conn);
// 添加参数,防止SQL注入
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Age", age);
cmd.Parameters.AddWithValue("@Grade", grade);
// 打开连接
conn.Open();
// 执行更新命令,返回受影响的行数
int rowsAffected = cmd.ExecuteNonQuery();
// 输出操作结果
if (rowsAffected > 0)
{
Console.WriteLine($"Student with Id {id} updated.");
}
else
{
Console.WriteLine($"No student found with Id {id}.");
}
}
}
// 删除学生
static void DeleteStudent(int id)
{
// 定义SQL删除语句
string query = "DELETE FROM Students WHERE Id = @Id";
// 使用using语句来自动管理数据库连接
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 创建SQL命令对象,绑定删除语句
SqlCommand cmd = new SqlCommand(query, conn);
// 添加参数,防止SQL注入
cmd.Parameters.AddWithValue("@Id", id);
// 打开连接
conn.Open();
// 执行删除命令,返回受影响的行数
int rowsAffected = cmd.ExecuteNonQuery();
// 输出操作结果
if (rowsAffected > 0)
{
Console.WriteLine($"Student with Id {id} deleted.");
}
else
{
Console.WriteLine($"No student found with Id {id}.");
}
}
}
}
}
代码解释:
1.数据库连接字符串:connectionString 用于定义与 SQL Server 数据库的连接信息,如服务器地址、数据库名称、用户名和密码等。
2.AddStudent 方法:此方法用于将新的学生信息(姓名、年龄、成绩)插入到 Students 表中。它使用了 SQL 插入语句和参数化查询,以避免 SQL 注入。
3.GetStudents 方法:此方法从 Students 表中查询所有学生的信息,并使用 SqlDataAdapter 将查询结果填充到 DataTable 中,再通过循环遍历并显示每一行数据。
4.UpdateStudent 方法:此方法用于更新指定学生的信息。它接受学生的 Id、姓名、年龄和成绩,然后执行 SQL 更新语句。如果更新成功,打印提示信息;如果未找到该学生,提示无效的 ID。
5.DeleteStudent 方法:此方法删除指定 ID 的学生记录。它同样使用参数化查询来防止 SQL 注入。如果删除成功,显示相关提示;否则,提示没有找到该学生。
总结
通过 C# 结合 ADO.NET,可以非常方便地实现对 SQL Server 数据库的增删改查操作。在实际开发中,可以根据需求进一步封装数据库操作,提升代码的可维护性与扩展性。
源码地址:https://download.csdn.net/download/weixin_44643352/90059354