使用存储过程将数据从.CSV文件读取到数据库时出现问题

时间:2011-02-16 16:24:18

标签: c# sql stored-procedures

使用SQL Server 2008和C# -

所以我试图为用户实现该功能以导入.CSV文件,然后我调用存储过程将该文件的内容写入临时表,然后将其合并到实际表中。

我的问题/问题是我正在尝试确定客户需要拥有的.xls文件的布局,并为他们提供模板.xls文件供他们使用。数据是基于区域的运费率矩阵。因此,列和行标题是重复的:

 -  A    B    C
 A  1    2    3

 B  2    1    4

 C  3    4    1

但我不确定如何通过存储过程解决这个问题。因此,我的其他选项是将.xls模板设置为:

From  To   Rate

 A    A     1
 A    B     2
 A    C     3
 B    A     2
 B    B     1
 .....

你得到了照片。这样做第二种方式是相当直接的,我有一个存储过程,可以让我遍历数据。

但是,我对第一个例子的问题很感兴趣,并想知道如何做到这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现这一目标。

一种简单的方法是简单地迭代行和列(2个循环)并将这些值传递给proc进行存储。

像(伪代码):

foreach(DataRow row in myDataTable.Rows) {
  foreach(DataColumn col in row.Columns) {
    String value = row[col].Value
    StoreValue(row.Name, col.Name, value); // <-- this would call your proc.
  }
}

如果您有SQL 2008,那么您可以使用表值参数并将整个表传递给存储过程。从那里你可以做你的插页。