У меня есть запрос - "SELECT PK1 FROM users
";
У меня также есть таблица данных с именем myTable
с тремя полями типа int;
-----------
| myTable |
-----------
| field1 |
| field2 |
| field3 |
-----------
Для каждой строки, возвращаемой из моего запроса, я хотел бы поместить значение PK1 в поле2 в myTable
, оставив поле1 и поле3 нулевым.
Вот пример кода, который я пробовал до сих пор, но, похоже, он не работает. Вместо этого поле PK1 добавляется в конец myTable
как новое поле.
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
? - person Michael Minton   schedule 11.06.2012