C# 需要建筑方面的建议吗

C# 需要建筑方面的建议吗,c#,sql-server,database-design,C#,Sql Server,Database Design,以下是我正在努力实现的目标 我有一个SQL server数据库,有16个表 现在我需要生成一个平面文件,如下所示 Field1, value1,value2, ..., valueN Field2, value1,value2, ..., valueN Field3, value1,value2, ..., valueN . . . FieldN, value1,value2, ..., valueN 其中字段与多个表中的列名类似。但是它的名字不一样。字段名和列名之间存在1对1的关系 我该怎么

以下是我正在努力实现的目标

我有一个SQL server数据库,有16个表

现在我需要生成一个平面文件,如下所示

Field1, value1,value2, ..., valueN
Field2, value1,value2, ..., valueN
Field3, value1,value2, ..., valueN
.
.
.
FieldN, value1,value2, ..., valueN
其中字段与多个表中的列名类似。但是它的名字不一样。字段名和列名之间存在1对1的关系

我该怎么做

多谢各位


作为XML导入,然后执行XML和XSLT如何?

这可以通过几个步骤实现:

  • 从数据库加载数据和列名
  • 将列名转换为可接受的名称
  • 将所有数据转换为正确的格式
  • 生成文件

  • 整个事情和你的问题一样笼统。如果你问了具体的问题,也许我们可以给你具体的答案。

    使用
    PIVOT


    我写道。您不需要像我一样进行聚合,但这应该可以让您开始了。

    要想获得您想要的字段名,您可能需要一个中间映射表,您可以手动填充该表:

    MyField         FieldNameNeeded
    UnitSerial      Unit Serial
    Address1        Address Line 1
    

    这里非常通用,但您可以将表输出结果集加载到二维数组中,然后按列主顺序遍历该数组以输出文件

    还可以创建一个数组,将列位置或名称映射到字段名称

    伪代码:

    fieldName[] = {"Field1","field2",....}
    
    String results[][] = getDBResults()  
    for( i=0;i&ltnumCOls;i++ ) {  
        line = fieldName[i] + ",";  
          for(j=0; j<&ltnumRows; j++) {  
              line += results[j][i] + ",";  
          }
          FILE.writeline(line[:-1]);  
    }
    
    fieldName[]={“Field1”、“field2”和..}
    字符串结果[][]=getDBResults()
    对于(i=0;i<numCOls;i++){
    行=字段名[i]+“,”;
    
    对于(j=0;jI)来说,我认为您需要定义“相似”的含义。如果您告诉我们您为什么要尝试实现这一点,可能会更容易得到答案。这是用测试数据填充表吗?是将数据从一个表布局移动到另一个表布局吗?@MJB的“相似”表示我的意思是字段和列名之间有1:1的关系。例如,UnitSerial列必须是“Unit Serial”平面文件中的字段。不,它们之间的空间并不总是不同的。只是没有一致性。@MJB我正在尝试集成两个系统,这个平面文件是第二个系统可以接受的。现在我有了几个选项。最好的方法是什么?非常感谢。我倾向于按原样将数据导入新系统,并且然后使用SQL进行转换。这将允许您在解码、查找等方面以及事务方面有一定的回旋余地。导入为XML,然后执行和XSLT如何?导入为XML,然后执行和XSLT如何?导入为XML,然后执行和XSLT如何?导入为XML,然后执行和XSLT如何?导入为XML,然后执行和XSLT如何?