当前位置:首页 > 行业动态 > 正文

c# 向数据库添加数据

在C#中,可以使用ADO.NET或Entity Framework等技术向数据库添加数据。

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

c# 向数据库添加数据  第1张

使用ADO.NET向数据库添加数据

1、引入命名空间

在使用ADO.NET之前,需要引入相关的命名空间,如System.DataSystem.Data.SqlClient(对于SQL Server数据库)。

2、建立数据库连接

c# 向数据库添加数据  第2张

使用SqlConnection类创建一个数据库连接对象,并指定连接字符串,该字符串包含服务器名称、数据库名称、用户ID和密码等信息。

    string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
    SqlConnection connection = new SqlConnection(connectionString);

3、打开连接

调用Open方法打开数据库连接。

    connection.Open();

4、创建命令对象

c# 向数据库添加数据  第3张

使用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.configWeb.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方法时将这些更改应用到数据库中,上下文类还可以用于定义数据库连接字符串、配置数据库初始化策略等。

0