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

c#j连接数据库增删改查

在C#中,可以使用ADO.NET或Entity Framework等技术来连接数据库并进行增删改查操作。以下是一个简单的示例:“ csharp,using System;,using System.Data.SqlClient;class Program,{, static void Main(), {, string connectionString = "your_connection_string";, using (SqlConnection connection = new SqlConnection(connectionString)), {, connection.Open();, // 增, string insertQuery = "INSERT INTO TableName (Column1, Column2) VALUES (@value1, @value2)";, using (SqlCommand command = new SqlCommand(insertQuery, connection)), {, command.Parameters.AddWithValue("@value1", "value1");, command.Parameters.AddWithValue("@value2", "value2");, command.ExecuteNonQuery();, } // 删, string deleteQuery = "DELETE FROM TableName WHERE Column1 = @value1";, using (SqlCommand command = new SqlCommand(deleteQuery, connection)), {, command.Parameters.AddWithValue("@value1", "value1");, command.ExecuteNonQuery();, } // 改, string updateQuery = "UPDATE TableName SET Column2 = @newValue WHERE Column1 = @value1";, using (SqlCommand command = new SqlCommand(updateQuery, connection)), {, command.Parameters.AddWithValue("@newValue", "newValue");, command.Parameters.AddWithValue("@value1", "value1");, command.ExecuteNonQuery();, } // 查, string selectQuery = "SELECT * FROM TableName";, using (SqlCommand command = new SqlCommand(selectQuery, connection)), {, using (SqlDataReader reader = command.ExecuteReader()), {, while (reader.Read()), {, Console.WriteLine($"{reader["Column1"]}, {reader["Column2"]}");, }, }, }, }, },},

在C#中,连接数据库并进行增删改查操作是一个常见的任务,通常使用ADO.NET或Entity Framework等技术来实现,以下是使用ADO.NET进行数据库操作的基本步骤和示例代码:

一、准备工作

1、引入命名空间:需要引入System.DataSystem.Data.SqlClient命名空间,以便使用相关的数据库操作类。

2、创建数据库连接字符串:定义一个连接字符串,包含服务器地址、数据库名称、用户名和密码等信息。

   string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";

二、连接数据库

使用SqlConnection类创建数据库连接对象,并调用Open方法打开连接。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // 在这里执行数据库操作
}

三、执行SQL查询(SELECT)

1、创建SqlCommand对象:传递SQL查询语句和连接对象给SqlCommand构造函数,要查询所有用户的信息,可以这样写:

   string query = "SELECT * FROM Users";
   SqlCommand command = new SqlCommand(query, connection);

2、读取数据:使用ExecuteReader方法执行查询,并返回一个SqlDataReader对象,通过它可以逐行读取查询结果。

   using (SqlDataReader reader = command.ExecuteReader())
   {
       while (reader.Read())
       {
           Console.WriteLine($"User ID: {reader["UserID"]}, Name: {reader["Name"]}");
       }
   }

四、执行插入操作(INSERT)

1、准备插入语句:编写包含参数占位符的INSERT语句,要插入一个新用户,可以这样写:

c#j连接数据库增删改查  第1张

   string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
   SqlCommand insertCommand = new SqlCommand(insertQuery, connection);

2、设置参数值:为命令对象添加参数,并设置它们的值。

   insertCommand.Parameters.AddWithValue("@Name", "John Doe");
   insertCommand.Parameters.AddWithValue("@Age", 30);

3、执行插入命令:调用ExecuteNonQuery方法执行插入操作。

   int rowsAffected = insertCommand.ExecuteNonQuery();
   Console.WriteLine($"Rows affected: {rowsAffected}");

五、执行更新操作(UPDATE)

1、准备更新语句:编写包含参数占位符的UPDATE语句,要更新用户的年龄,可以这样写:

   string updateQuery = "UPDATE Users SET Age = @Age WHERE UserID = @UserID";
   SqlCommand updateCommand = new SqlCommand(updateQuery, connection);

2、设置参数值:为命令对象添加参数,并设置它们的值。

   updateCommand.Parameters.AddWithValue("@Age", 35);
   updateCommand.Parameters.AddWithValue("@UserID", 1);

3、执行更新命令:调用ExecuteNonQuery方法执行更新操作。

c#j连接数据库增删改查  第2张

   int rowsAffected = updateCommand.ExecuteNonQuery();
   Console.WriteLine($"Rows affected: {rowsAffected}");

六、执行删除操作(DELETE)

1、准备删除语句:编写包含参数占位符的DELETE语句,要删除一个用户,可以这样写:

   string deleteQuery = "DELETE FROM Users WHERE UserID = @UserID";
   SqlCommand deleteCommand = new SqlCommand(deleteQuery, connection);

2、设置参数值:为命令对象添加参数,并设置它们的值。

   deleteCommand.Parameters.AddWithValue("@UserID", 1);

3、执行删除命令:调用ExecuteNonQuery方法执行删除操作。

   int rowsAffected = deleteCommand.ExecuteNonQuery();
   Console.WriteLine($"Rows affected: {rowsAffected}");

七、处理异常

在进行数据库操作时,可能会遇到各种异常情况,如连接失败、SQL语法错误等,为了提高程序的健壮性,建议使用try-catch语句来捕获和处理这些异常。

try
{
    // 在这里执行数据库操作
}
catch (Exception ex)
{
    Console.WriteLine($"An error occurred: {ex.Message}");
}

八、关闭连接

在完成数据库操作后,应及时关闭数据库连接以释放资源,如果使用了using语句来创建SqlConnection对象,则无需手动关闭连接,因为using语句会自动调用Dispose方法来关闭连接,否则,可以显式调用Close方法来关闭连接。

c#j连接数据库增删改查  第3张

connection.Close();

以下是一个完整的示例,展示了如何使用C#连接数据库并进行增删改查操作:

操作类型 SQL语句 C#代码
查询(SELECT) SELECT * FROM Users csharp
string query = "SELECT * FROM Users";
SqlCommand command = new SqlCommand(query, connection);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"User ID: {reader["UserID"]}, Name: {reader["Name"]}");
}
}
插入(INSERT) INSERT INTO Users (Name, Age) VALUES (@Name, @Age) csharp
string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";
SqlCommand insertCommand = new SqlCommand(insertQuery, connection);
insertCommand.Parameters.AddWithValue("@Name", "John Doe");
insertCommand.Parameters.AddWithValue("@Age", 30);
int rowsAffected = insertCommand.ExecuteNonQuery();
Console.WriteLine($"Rows affected: {rowsAffected}");
更新(UPDATE) UPDATE Users SET Age = @Age WHERE UserID = @UserID csharp
string updateQuery = "UPDATE Users SET Age = @Age WHERE UserID = @UserID";
SqlCommand updateCommand = new SqlCommand(updateQuery, connection);
updateCommand.Parameters.AddWithValue("@Age", 35);
updateCommand.Parameters.AddWithValue("@UserID", 1);
int rowsAffected = updateCommand.ExecuteNonQuery();
Console.WriteLine($"Rows affected: {rowsAffected}");
删除(DELETE) DELETE FROM Users WHERE UserID = @UserID csharp
string deleteQuery = "DELETE FROM Users WHERE UserID = @UserID";
SqlCommand deleteCommand = new SqlCommand(deleteQuery, connection);
deleteCommand.Parameters.AddWithValue("@UserID", 1);
int rowsAffected = deleteCommand.ExecuteNonQuery();
Console.WriteLine($"Rows affected: {rowsAffected}");

十、FAQs相关

1、Q: 如何连接到不同的数据库类型(如MySQL, PostgreSQL等)?

A: 根据目标数据库类型选择相应的.NET数据提供程序(如MySql.Data, Npgsql),并调整连接字符串格式和命令对象类型(如MySqlCommand, NpgsqlCommand)。

2、Q: 如何处理大量数据的插入以提高性能?

A: 可以考虑使用批量插入技术,如将多条INSERT语句合并为一条执行,或使用存储过程来优化插入操作,确保事务管理得当以避免部分失败导致的数据不一致问题。

0