c# 向数据库添加数据
- 行业动态
- 2025-02-26
- 2
在C#中向数据库添加数据是一个常见的操作,通常涉及到使用ADO.NET或Entity Framework等数据访问技术,以下是使用这两种技术的详细步骤和示例代码:

使用ADO.NET向数据库添加数据
1、引入命名空间:
在使用ADO.NET之前,需要引入相关的命名空间,如System.Data
和System.Data.SqlClient
(对于SQL Server数据库)。
2、建立数据库连接:

使用SqlConnection
类创建一个数据库连接对象,并指定连接字符串,该字符串包含服务器名称、数据库名称、用户ID和密码等信息。
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"; SqlConnection connection = new SqlConnection(connectionString);
3、打开连接:
调用Open
方法打开数据库连接。
connection.Open();
4、创建命令对象:

使用SqlCommand
类创建一个命令对象,用于执行SQL语句,将SQL插入语句作为命令文本,并将连接对象传递给命令对象的构造函数。
假设要向名为Users
的表中插入一条新记录:
string sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)"; SqlCommand command = new SqlCommand(sql, connection);
5、设置参数值:
如果SQL语句中使用了参数(如上面的@Name
和@Age
),需要为这些参数赋值,可以使用命令对象的Parameters
属性来设置参数值。
command.Parameters.AddWithValue("@Name", "John Doe"); command.Parameters.AddWithValue("@Age", 30);
6、执行命令:
调用命令对象的ExecuteNonQuery
方法执行SQL插入语句,该方法返回一个整数,表示受影响的行数。
int rowsAffected = command.ExecuteNonQuery();
7、关闭连接:
操作完成后,调用Close
方法关闭数据库连接。
connection.Close();
8、完整示例代码:
using System; using System.Data.SqlClient; class Program { static void Main() { string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)"; using (SqlCommand command = new SqlCommand(sql, connection)) { command.Parameters.AddWithValue("@Name", "John Doe"); command.Parameters.AddWithValue("@Age", 30); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine(rowsAffected + " row(s) inserted."); } } } }
使用Entity Framework向数据库添加数据
1、安装Entity Framework:
确保项目中安装了Entity Framework,可以通过NuGet包管理器安装EntityFramework
包。
2、创建模型类:
根据数据库表的结构创建相应的模型类,如果有一个Users
表,可以创建一个User
模型类。
public class User { public int UserId { get; set; } public string Name { get; set; } public int Age { get; set; } }
3、创建上下文类:
创建一个继承自DbContext
的上下文类,并在其中定义一个DbSet
属性,对应数据库中的表,在上下文类的构造函数中指定数据库连接字符串。
public class MyDbContext : DbContext { public MyDbContext(string connectionString) : base(connectionString) { } public DbSet<User> Users { get; set; } }
4、配置数据库连接:
在应用程序的配置文件(如App.config
或Web.config
)中添加数据库连接字符串。
<connectionStrings> <add name="MyDbContext" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient" /> </connectionStrings>
5、添加数据:
使用上下文对象创建一个新的实体对象,并设置其属性值,然后调用上下文对象的Add
方法将实体对象添加到上下文中,最后调用SaveChanges
方法保存更改到数据库中。
using (var context = new MyDbContext("name=MyDbContext")) { User newUser = new User { Name = "John Doe", Age = 30 }; context.Users.Add(newUser); int rowsAffected = context.SaveChanges(); Console.WriteLine(rowsAffected + " row(s) inserted."); }
6、完整示例代码:
using System; using System.Data.Entity; public class User { public int UserId { get; set; } public string Name { get; set; } public int Age { get; set; } } public class MyDbContext : DbContext { public MyDbContext(string connectionString) : base(connectionString) { } public DbSet<User> Users { get; set; } } class Program { static void Main() { using (var context = new MyDbContext("name=MyDbContext")) { User newUser = new User { Name = "John Doe", Age = 30 }; context.Users.Add(newUser); int rowsAffected = context.SaveChanges(); Console.WriteLine(rowsAffected + " row(s) inserted."); } } }
分别介绍了使用ADO.NET和Entity Framework向数据库添加数据的方法和步骤,在实际开发中,可以根据项目的需求和具体情况选择合适的数据访问技术,如果需要更精细地控制数据库操作和性能优化,可以选择ADO.NET;如果希望更简洁、更高效地开发数据访问层,可以选择Entity Framework,无论使用哪种技术,都需要注意正确处理数据库连接、异常和事务,以确保数据的安全性和一致性。
相关问答FAQs
问题1:使用ADO.NET向数据库添加数据时,如何处理SQL注入攻击?
答:使用ADO.NET时,为了避免SQL注入攻击,应该始终使用参数化查询而不是直接拼接SQL字符串,通过使用参数化查询,可以将用户输入作为参数传递给SQL命令,而不是将其直接包含在SQL语句中,这样可以有效防止SQL注入攻击,在上面的ADO.NET示例中,就是使用了参数化查询来插入数据。
问题2:Entity Framework中的上下文类有什么作用?
答:在Entity Framework中,上下文类(继承自DbContext
)主要用于管理数据库连接、执行数据库操作以及维护实体对象的状态,它提供了对数据库表的映射(通过DbSet
属性),使得开发者可以以面向对象的方式操作数据库中的数据,上下文类还负责跟踪实体对象的更改、添加和删除操作,并在调用SaveChanges
方法时将这些更改应用到数据库中,上下文类还可以用于定义数据库连接字符串、配置数据库初始化策略等。