Dapper 를 이용해 쿼리 결과데이터를 List<dynamic> 로 받아서 화면에 데이터를 표시하고 있는데
특정한 데이터를 추가하는 방법을 알아봅니다.
쿼리 결과를 받았기 때문에 dynamic 이지만 구조가 잡혀있습니다.
여기에 데이터를 추가하기 위해서는 구조에 맞게 데이터를 넣고 추가해줘야합니다.
아래 Method 를 추가합니다.
using System.Dynamic;
public void AddRowWithSingleValue(List<dynamic> rows, string columnName, object value)
{
if (rows == null || rows.Count == 0)
throw new ArgumentException("rows 리스트가 비어있습니다.");
// 첫 번째 row에서 컬럼 구조 추출
var firstRow = (IDictionary<string, object>)rows[0];
dynamic newRow = new ExpandoObject();
var newRowDict = (IDictionary<string, object>)newRow;
foreach (var col in firstRow.Keys)
{
if (col == columnName)
newRowDict[col] = value;
else
newRowDict[col] = null;
}
rows.Add(newRow);
}
사용은 아래와 같이 사용합니다.
var result = connection.Query("SELECT Id, Name, Age FROM Users").ToList();
AddRowWithSingleValue(result, "Name", "홍길동");
// 출력 확인
foreach (var row in result)
{
Console.WriteLine($"Id: {row.Id}, Name: {row.Name}, Age: {row.Age}");
}
만약 기존에 3개의 행이 있었다면, 위 코드를 통해 "Name" = "홍길동" 값을 갖는 1개의 새 행이 추가되어 총 4개의 행이 됩니다.
IEnumerable<dynamic> 에서 특정 컬럼 값을 콤마로 연결해 반환하기 (0) | 2025.04.23 |
---|---|
Sorting 된 목록에서 데이터 변경점 찾아내기 (0) | 2025.04.10 |
ASP.NET Core ResponseCache 활용하기 (0) | 2025.02.25 |
CSnakes.Runtime 을 로컬 파이썬/VM 이용하기 (0) | 2025.01.25 |
CSnakes.Runtime 사용하기 (0) | 2025.01.22 |