📅  最后修改于: 2023-12-03 14:52:14.792000             🧑  作者: Mango
在 C# 中,我们可以使用各种库和框架来执行各种操作。下面是一些常用的操作及其相应的库和框架。
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 是一个 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 是 C# 中用于文件和目录操作的命名空间。它提供了一组类和接口,使开发人员可以读取、写入和管理文件和文件夹。以下是在 C# 中读取和写入文本文件的示例代码:
using System.IO;
// 读取文本文件
string filePath = "<文件路径>";
string content = File.ReadAllText(filePath);
// 写入文本文件
string filePath = "<文件路径>";
string content = "<文本内容>";
File.WriteAllText(filePath, content);
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 是 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 是一个开源的实时网络库,它使得在客户端和服务器之间可以实现双向通信变得简单。它提供了一组类和接口,使开发人员可以使用 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# 中执行其他操作的介绍,其中包括数据库操作、文件操作和网络操作。开发人员可以选择适合自己的库和框架来实现各种操作。