쿼리가 있습니다 - "SELECT PK1 FROM users
";C# sqldataadapter 데이터 테이블 매핑
또한 int 유형의 세 필드가있는 myTable
이라는 데이터 테이블이 있습니다.
-----------
| myTable |
-----------
| field1 |
| field2 |
| field3 |
-----------
내 쿼리에서 반환 된 각 행에 대해, 나는 필드 1과 FIELD3 널 떠나
myTable
에 FIELD2에 PK1 값을 넣고 싶습니다.
여기까지 시도한 샘플 코드가 있지만 작동하지 않는 것 같습니다. 대신 새 필드로 myTable
끝에 PK1 필드가 추가됩니다.
class Program
{
static void Main(string[] args)
{
string SQL = "SELECT PK1 FROM users";
SqlConnection connection = new SqlConnection([my connection string]);
DataTable myTable = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(SQL, connection);
myTable.Columns.Add("field1", typeof(Int32));
myTable.Columns.Add("field2", typeof(Int32));
myTable.Columns.Add("field3", typeof(Int32));
DataTableMapping dataMapping = adapter.TableMappings.Add("myTable", "users");
dataMapping.ColumnMappings.Add("PK1", "field2");
adapter.Fill(myTable);
foreach (DataRow row in myTable.Rows)
{
Console.WriteLine("------------");
foreach (DataColumn column in myTable.Columns)
{
Console.WriteLine(column.ColumnName + " : " + row[column]);
}
}
Console.ReadKey();
}
}
내 코드에 문제가 있습니까? 아니면 다른 방법으로 필드를 매핑 할 수 있습니까?
이것은 주어진 위치에 값을 삽입하는 대신 필드 이름을 매핑하는 것이 이상적 일 수 있으므로이 질문의 단순한 예입니다.
왜 'DataTable'을 사용하고 있습니까? –
나는 데이터를 메모리에 저장하고 두 번째 DB에 지속하기 전에 더 조작 할 수 있기를 원하기 때문에. 더 좋은 제안이 있습니까? – user469453
나는 이것이 내 첫 번째 C# 프로젝트이므로 모든 팁/대안이 환영받는 것 이상을 의미한다. – user469453