c#现有300个设备编号,循环遍历这300个设备编号并依次从数据库取出每个设备最新一张图片的URL,将取出的URL填充到DateTable中
时间: 2023-11-22 11:53:10 浏览: 128
假设设备编号存储在一个名为deviceList的List中,可以按如下方式循环遍历每个设备编号,并从数据库中取出最新一张图片的URL并填充到DataTable中:
```csharp
using System.Data;
using System.Data.SqlClient;
// 假设数据库连接字符串为connectionString
string connectionString = "your_connection_string_here";
// 创建一个DataTable对象来存储结果
DataTable dataTable = new DataTable();
// 添加列到DataTable中
dataTable.Columns.Add("DeviceId", typeof(int));
dataTable.Columns.Add("ImageUrl", typeof(string));
// 循环遍历设备编号列表并从数据库中取出最新一张图片的URL
foreach (int deviceId in deviceList)
{
// 创建一个SqlConnection对象,使用指定的连接字符串建立连接
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 打开连接
connection.Open();
// 创建一个SqlCommand对象,使用设备编号查询最新一张图片的URL
SqlCommand command = new SqlCommand("SELECT TOP 1 ImageUrl FROM Images WHERE DeviceId = @deviceId ORDER BY CreatedTime DESC", connection);
// 设置SqlCommand对象的参数值
command.Parameters.AddWithValue("@deviceId", deviceId);
// 执行SqlCommand对象并获取查询结果
using (SqlDataReader reader = command.ExecuteReader())
{
// 如果查询结果非空,则将查询结果添加到DataTable中
if (reader.HasRows)
{
reader.Read();
string imageUrl = reader.GetString(0);
dataTable.Rows.Add(deviceId, imageUrl);
}
}
}
}
```
上述代码中,假设设备编号存储在一个名为deviceList的List中,数据库连接字符串存储在变量connectionString中,Images表包含了设备编号、图片URL和创建时间等字段。代码中使用SqlCommand对象执行SQL语句查询最新一张图片的URL,并使用SqlDataReader对象读取查询结果。最后将设备编号和图片URL添加到DataTable中。
阅读全文