C#将wep api接口数据存入SQLserver中
时间: 2024-10-24 20:06:37 浏览: 20
C#实现modbus tcp客户端,并将读取的数据存入SQL Server
5星 · 资源好评率100%
在C#中,将Web API返回的数据存入SQL Server通常涉及以下几个步骤:
1. **获取API数据**:
使用HttpClient或其他库从Web API发起HTTP请求,获取JSON格式的数据。例如:
```csharp
using HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync("your_api_url");
string jsonData = await response.Content.ReadAsStringAsync();
```
2. **解析JSON数据**:
使用Json.NET( Newtonsoft.Json 或 System.Text.Json)库将JSON字符串转换成动态对象或强类型的实体类。如果API返回的是自定义的模型类,可以直接映射。
3. **连接数据库**:
需要创建SqlConnection实例并打开连接到SQL Server:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
}
```
4. **存储数据**:
将解析后的数据插入或更新到数据库表中。可以使用SqlCommand或Entity Framework等ORM工具执行此操作:
- 如果是动态对象,可能需要编写T-SQL INSERT或UPDATE语句手动执行。
- 如果是实体类,可以使用LINQ-to-SQL或EF Core的DbContext SaveChanges()方法自动持久化。
5. **处理错误和异常**:
在整个过程中捕获可能出现的异常,并确保关闭数据库连接。
示例代码片段:
```csharp
using Newtonsoft.Json.Linq;
// ...
var jsonString = await response.Content.ReadAsStringAsync();
JObject jsonObject = JObject.Parse(jsonString);
using (SqlConnection connection = new SqlConnection(connectionString))
{
await connection.OpenAsync();
var person = JsonConvert.DeserializeObject<Person>(jsonObject.ToString()); // 假设Person是你的实体类
string insertQuery = "INSERT INTO People (Name, Age) VALUES (@Name, @Age)";
SqlCommand command = new SqlCommand(insertQuery, connection);
command.Parameters.AddWithValue("@Name", person.Name);
command.Parameters.AddWithValue("@Age", person.Age);
await command.ExecuteNonQueryAsync();
}
```
阅读全文