0

我想构建一个动态脚本组件作为多表的源和目标。我刚从Microsoft Page的示例开始。它适用于特定表,但现在需要将其转换为所有表的动态,但需要您的帮助。

首先,我想通过下面的 sql 查询动态生成“MyAddressOutputBuffer.Column”部分。

   SqlCommand cmdMeta = new SqlCommand(@"
   select ColumnMapping = ' MyAddressOutputBuffer.Column'+cast(RANK() OVER(ORDER BY c.name)-1 as varchar(5))+' =  sqlReader.GetValue(' + cast(RANK() OVER(ORDER BY c.name) - 1 as varchar(5)) + ').ToString();' 
   from sys.tables t
   inner join sys.columns c on t.object_id = c.object_id
   where t.name = 'Address'", sqlConn);
   sqlReaderMeta = cmdMeta.ExecuteReader();

上面的代码给出了预期的结果,但不确定如何用下面的部分硬编码映射替换:

public override void CreateNewOutputRows()  
{  

    while (sqlReader.Read())  
    {  
        {  
            MyAddressOutputBuffer.AddRow();  
            MyAddressOutputBuffer.AddressID = sqlReader.GetValue(0).ToString();  // I use getVAlue for all data types.
            MyAddressOutputBuffer.City = sqlReader.GetValue(1).ToString();  
        }  
    }  

}  

有没有办法说 C# 运行从上面的 sql 返回而不是硬编码的动态查询?

4

0 回答 0