C#系列-访问SqlServer+Mysql+Oracle数据库(6)

目录

一、      C#访问SqlServer数据库

二、      C#异步读取SqlServer数据库

三、      C#访问Mysql数据库

四、      C#访问Oracle数据库

  • 一,C#访问SqlServer数据库

 在C#中访问SQL Server数据库,你通常会使用ADO.NET (ActiveX Data Objects .NET),它是.NET Framework提供的一组用于访问数据的类库。ADO.NET中最常用的两个组件是`SqlConnection`和`SqlCommand`。以下是一个简单的示例,演示如何在C#中连接到SQL Server数据库并执行查询:

首先,确保你的项目中已经添加了对`System.Data.SqlClient`的引用。这个引用通常在.NET项目中默认包含。

using System;

using System.Data;

using System.Data.SqlClient;

class Program

{

    static void Main()

    {

        // SQL Server连接字符串

        string connectionString = "Server=你的服务器地址;Database=你的数据库名;User Id=你的用户名;Password=你的密码;";

        try

        {

            // 使用SqlConnection建立数据库连接

            using (SqlConnection connection = new SqlConnection(connectionString))

            {

                connection.Open();

                // 使用SqlCommand执行SQL查询

                using (SqlCommand command = new SqlCommand("SELECT * FROM 你的表名", connection))

                {

                    // 使用SqlDataReader读取查询结果

                    using (SqlDataReader reader = command.ExecuteReader())

                    {

                        while (reader.Read())

                        {

                            Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));

                        }

                    }

                }

            }

        }

        catch (SqlException e)

        {

            // 处理异常

            Console.WriteLine(e.ToString());

        }

    }

}

在这个示例中:

- `connectionString` 是用来连接SQL Server数据库的连接字符串。你需要将其中的`你的服务器地址`、`你的数据库名`、`你的用户名`和`你的密码`替换为实际的值。

- `SqlConnection` 类用于建立和管理与SQL Server数据库的连接。

- `SqlCommand` 类用于执行SQL命令和存储过程。

- `SqlDataReader` 类用于读取从SQL Server检索的行。

请注意,为了安全起见,不要在代码中硬编码数据库凭据(如用户名和密码)。在生产环境中,应该使用安全的方式(如配置文件、环境变量或密钥管理系统)来存储和检索这些凭据。

此外,你还可以使用`SqlDataAdapter`和`DataSet`来执行更复杂的数据库操作,如插入、更新和删除数据,以及断开式数据处理。

最后,确保你的项目引用了正确的SQL Server客户端库。对于.NET Core和.NET 5/6/7+项目,你可能需要安装`System.Data.SqlClient` NuGet包。对于较旧的.NET Framework项目,`System.Data.SqlClient`通常已经包含在内。

  • 二,C#异步读取SqlServer数据库

 C#中异步读取SQL Server数据库通常涉及使用ADO.NET的异步API,特别是SqlCommand类的异步方法,如ExecuteReaderAsync,来执行查询并获取结果。以下是一个使用SqlConnectionSqlCommand异步方法从SQL Server数据库中异步读取数据的例子:

csharp代码

using System;

using System.Data.SqlClient;

using System.Threading.Tasks;

class Program

{

static async Task Main(string[] args)

{

// SQL Server连接字符串

string connectionString = "Server=localhost;Database=myDatabase;User Id=myUsername;Password=myPassword;";

// 异步查询数据

using (SqlConnection connection = new SqlConnection(connectionString))

{

await connection.OpenAsync();

using (SqlCommand command = new SqlCommand("SELECT * FROM myTable", connection))

{

// 执行异步查询并获取SqlDataReader

using (SqlDataReader reader = await command.ExecuteReaderAsync())

{

// 读取数据

while (await reader.ReadAsync())

{

Console.WriteLine($"Column1: {reader["Column1"]}, Column2: {reader["Column2"]}");

}

}

}

}

}

}

在这个例子中,我们首先创建了一个SqlConnection对象,并打开了与SQL Server数据库的连接。然后,我们创建了一个SqlCommand对象,并指定了要执行的SQL查询。使用ExecuteReaderAsync方法异步执行查询并获取一个SqlDataReader对象,该对象允许我们遍历查询结果。

while循环中,我们使用ReadAsync方法异步读取SqlDataReader中的下一行,并输出列的值。当没有更多的行可读时,ReadAsync将返回false,循环将结束。

请注意以下几点:

  1. 使用using语句来确保资源(如连接和命令)在使用后被正确释放。
  2. 使用await关键字来异步等待操作完成,从而避免阻塞主线程。
  3. 替换连接字符串、查询和列名为适合你的数据库设置的值。

此外,如果你使用的是.NET Core.NET 5/6/7+等较新的版本,你还可以考虑使用Entity Framework CoreEF Core)这样的ORM框架,它提供了更高级别的抽象和异步API来访问数据库。

异步编程是处理I/O密集型操作(如数据库访问)时的重要技术,它能够提高应用程序的响应性和吞吐量。

  • 三,C#访问Mysql数据库

C#中访问MySQL数据库,你通常会使用MySQL官方提供的MySQL Connector/NET库,它提供了与ADO.NET类似的接口来与MySQL数据库进行交互。以下是一个简单的示例,演示如何在C#中连接到MySQL数据库并执行查询:

首先,确保你的项目中已经安装了MySQL Connector/NET。你可以通过NuGet包管理器来安装它。在Visual Studio中,右键点击项目 -> 选择管理NuGet” -> 搜索“MySql.Data” -> 点击安装

csharp代码

using System;

using MySql.Data.MySqlClient;

class Program

{

static void Main()

{

// MySQL连接字符串

string connectionString = "server=你的服务器地址;database=你的数据库名;user=你的用户名;password=你的密码;port=3306;";

try

{

// 使用MySqlConnection建立数据库连接

using (MySqlConnection connection = new MySqlConnection(connectionString))

{

connection.Open();

// 使用MySqlCommand执行SQL查询

using (MySqlCommand command = new MySqlCommand("SELECT * FROM 你的表名", connection))

{

// 使用MySqlDataReader读取查询结果

using (MySqlDataReader reader = command.ExecuteReader())

{

while (reader.Read())

{

Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));

}

}

}

}

}

catch (MySqlException e)

{

// 处理异常

Console.WriteLine(e.ToString());

}

}

}

在这个示例中:

  • connectionString 是用来连接MySQL数据库的连接字符串。你需要将其中的你的服务器地址、你的数据库名、你的用户名和你的密码替换为实际的值。
  • MySqlConnection 类用于建立和管理与MySQL数据库的连接。
  • MySqlCommand 类用于执行SQL命令和存储过程。
  • MySqlDataReader 类用于读取从MySQL检索的行。

请注意,和SQL Server一样,你应该避免在代码中硬编码数据库凭据。在生产环境中,应该使用安全的方式存储和检索这些凭据。

此外,你还可以使用MySqlDataAdapterDataSet来执行更复杂的数据库操作,如插入、更新和删除数据,以及断开式数据处理。

确保你的MySQL Connector/NET库版本与你的MySQL服务器版本兼容,并经常检查是否有更新,以确保安全性和性能。

  • 四,C#访问Oracle数据库

 C#中访问Oracle数据库,你通常会使用Oracle官方提供的Oracle Data Provider for .NET (ODP.NET),这是一个用于.NET应用程序的Oracle数据库驱动程序。ODP.NET提供了两种主要的接口:Oracle.ManagedDataAccess.Client(托管驱动)和Oracle.DataAccess.Client(非托管驱动,已过时并在Oracle 19c后不再推荐使用)。

以下是使用Oracle.ManagedDataAccess.Client的示例,展示如何在C#中连接到Oracle数据库并执行查询:

首先,确保你的项目中已经安装了Oracle.ManagedDataAccess.Client。你可以通过NuGet包管理器来安装它。在Visual Studio中,右键点击项目 -> 选择管理NuGet” -> 搜索“Oracle.ManagedDataAccess.Client” -> 点击安装

csharp代码

using System;

using Oracle.ManagedDataAccess.Client;

class Program

{

static void Main()

{

// Oracle连接字符串

string connectionString = "User Id=你的用户名;Password=你的密码;Data Source=你的Oracle服务名;";

try

{

// 使用OracleConnection建立数据库连接

using (OracleConnection connection = new OracleConnection(connectionString))

{

connection.Open();

// 使用OracleCommand执行SQL查询

using (OracleCommand command = new OracleCommand("SELECT * FROM 你的表名", connection))

{

// 使用OracleDataReader读取查询结果

using (OracleDataReader reader = command.ExecuteReader())

{

while (reader.Read())

{

Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));

}

}

}

}

}

catch (OracleException e)

{

// 处理异常

Console.WriteLine(e.ToString());

}

}

}

在这个示例中:

  • connectionString 是用来连接Oracle数据库的连接字符串。你需要将其中的你的用户名、你的密码和你的Oracle服务名替换为实际的值。
  • OracleConnection 类用于建立和管理与Oracle数据库的连接。
  • OracleCommand 类用于执行SQL命令和存储过程。
  • OracleDataReader 类用于读取从Oracle检索的行。

请注意,Oracle的连接字符串可能因Oracle数据库的版本和配置而有所不同。确保你使用正确的连接字符串格式。

同样,你应该避免在代码中硬编码数据库凭据。在生产环境中,应该使用安全的方式存储和检索这些凭据。

ODP.NET还提供了OracleDataAdapterDataSet,以便执行更复杂的数据库操作,如插入、更新和删除数据,以及断开式数据处理。

最后,请确保你使用的ODP.NET版本与你的Oracle数据库版本兼容,并经常检查Oracle官方网站以获取最新的驱动程序和更新。

你可能感兴趣的:(C#系列,技术,Mysql,数据库,c#,sqlserver)