我有一个查询 - “SELECT PK1 FROM users
”;C#sqldataadapter datatablemapping
我也有一个DataTable int型的三个字段命名myTable
;
-----------
| 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();
}
}
在我的代码中是否存在问题,或者有另一种方法可以映射字段?
这是为这个问题的目的一个简化的例子,因为这些映射字段名称将是理想的,而不是在一个给定的位置插入的值。
这是2012年,为什么你使用'DataTable'? –
因为我希望能够将数据存储在内存中,并在继续使用第二个数据库之前对其进行进一步处理。你有更好的建议吗? – user469453
我还应该补充说这是我的第一个C#项目,所以任何提示/备选方案都非常值得欢迎,因为这对我来说是一次学习体验。 – user469453