📜  如何在 c# 中执行其他操作(1)

📅  最后修改于: 2023-12-03 14:52:14.792000             🧑  作者: Mango

如何在 C# 中执行其他操作

在 C# 中,我们可以使用各种库和框架来执行各种操作。下面是一些常用的操作及其相应的库和框架。

数据库操作
ADO.NET

ADO.NET 是 C# 中用于访问各种数据库的框架。它提供了一组类和接口,使开发人员能够连接和操作数据源。以下是在 C# 中连接和查询 SQL 数据库的示例代码:

using System.Data.SqlClient;

// 连接 SQL 数据库
string connectionString = "<连接字符串>";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    // 打开连接
    connection.Open();

    // 查询数据
    string sql = "SELECT * FROM <表名>";
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                // 处理查询结果
            }
        }
    }
}
Entity Framework

Entity Framework 是一个 ORM 框架,可以将数据库表映射到对象模型。它提供了一组类和接口,使开发人员可以使用面向对象的方式访问数据库。以下是使用 Entity Framework 连接和查询 SQL 数据库的示例代码:

using System.Data.Entity;

// 定义实体类
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

// 定义 DbContext 类
public class MyDbContext : DbContext
{
    public MyDbContext(string connectionString)
        : base(connectionString)
    {
    }

    public DbSet<Product> Products { get; set; }
}

// 查询数据
string connectionString = "<连接字符串>";
using (MyDbContext dbContext = new MyDbContext(connectionString))
{
    List<Product> products = dbContext.Products.ToList();
    foreach (Product product in products)
    {
        // 处理查询结果
    }
}
文件操作
System.IO

System.IO 是 C# 中用于文件和目录操作的命名空间。它提供了一组类和接口,使开发人员可以读取、写入和管理文件和文件夹。以下是在 C# 中读取和写入文本文件的示例代码:

using System.IO;

// 读取文本文件
string filePath = "<文件路径>";
string content = File.ReadAllText(filePath);

// 写入文本文件
string filePath = "<文件路径>";
string content = "<文本内容>";
File.WriteAllText(filePath, content);
NPOI

NPOI 是一个开源的 C# Excel 处理库。它提供了一组类和接口,使开发人员可以读取、写入和生成 Excel 文件。以下是使用 NPOI 读取和写入 Excel 文件的示例代码:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

// 读取 Excel 文件
string filePath = "<文件路径>";
using (FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
    IWorkbook workbook = new XSSFWorkbook(stream);
    ISheet sheet = workbook.GetSheetAt(0);
    for (int i = 0; i <= sheet.LastRowNum; i++)
    {
        IRow row = sheet.GetRow(i);
        if (row != null)
        {
            for (int j = 0; j < row.LastCellNum; j++)
            {
                Console.Write("{0} ", row.GetCell(j));
            }
            Console.WriteLine();
        }
    }
}

// 写入 Excel 文件
IEnumerable<object[]> data = new List<object[]>
{
    new object[] { "Name", "Age" },
    new object[] { "Tom", 20 },
    new object[] { "Jerry", 21 },
};
string filePath = "<文件路径>";
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
int rowIndex = 0;
foreach (object[] rowData in data)
{
    IRow row = sheet.CreateRow(rowIndex++);
    int cellIndex = 0;
    foreach (object cellData in rowData)
    {
        row.CreateCell(cellIndex++).SetCellValue(cellData.ToString());
    }
}
using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
    workbook.Write(stream);
}
网络操作
System.Net

System.Net 是 C# 中用于网络操作的命名空间。它提供了一组类和接口,使开发人员可以使用多种协议进行网络通信。以下是在 C# 中使用 HTTP 协议发送请求和接收响应的示例代码:

using System.Net;
using System.IO;

// 发送 HTTP 请求
string url = "<请求 URL>";
HttpWebRequest request = WebRequest.CreateHttp(url);
request.Method = "POST";
request.ContentType = "application/json";
string postData = "<请求数据>";
byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);
request.ContentLength = postDataBytes.Length;
using (Stream stream = request.GetRequestStream())
{
    stream.Write(postDataBytes, 0, postDataBytes.Length);
}

// 接收 HTTP 响应
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    string responseEncodingName = response.ContentEncoding ?? Encoding.UTF8.WebName;
    Encoding responseEncoding = Encoding.GetEncoding(responseEncodingName);
    using (StreamReader reader = new StreamReader(response.GetResponseStream(), responseEncoding))
    {
        string responseContent = reader.ReadToEnd();
        // 处理响应内容
    }
}
SignalR

SignalR 是一个开源的实时网络库,它使得在客户端和服务器之间可以实现双向通信变得简单。它提供了一组类和接口,使开发人员可以使用 JavaScript 和 C# 进行实时通信。以下是使用 SignalR 在 C# 中发送消息的示例代码:

using Microsoft.AspNet.SignalR.Client;

// 连接 SignalR 服务器
string url = "<服务器 URL>";
HubConnection connection = new HubConnection(url);
IHubProxy hubProxy = connection.CreateHubProxy("<Hub 名称>");
connection.Start().Wait();

// 发送消息
hubProxy.Invoke("<方法名>", "<消息内容>").Wait();

以上是在 C# 中执行其他操作的介绍,其中包括数据库操作、文件操作和网络操作。开发人员可以选择适合自己的库和框架来实现各种操作。