C# 有人知道如何从数组中带有逗号分隔列的字符串数组大容量插入SQL吗

C# 有人知道如何从数组中带有逗号分隔列的字符串数组大容量插入SQL吗,c#,C#,我在C3中有一个字符串数组,其中填充了Yahoo历史数据,数组中的数据如下 string url = string.Format("http://ichart.yahoo.com/table.csv?s={0}&a=2&b=1&c=2010&d={1}&e={2}&f={3}&g=&ignore=.csv", SymbolSelect, CurrentMonth, Today, CurrentYear); WebClien

我在C3中有一个字符串数组,其中填充了Yahoo历史数据,数组中的数据如下

string url = string.Format("http://ichart.yahoo.com/table.csv?s={0}&a=2&b=1&c=2010&d={1}&e={2}&f={3}&g=&ignore=.csv",
    SymbolSelect, CurrentMonth, Today, CurrentYear); 
WebClient web = new WebClient();
string data = web.DownloadString(url);
string[] rows = data.Split("\n".ToCharArray());
数组行--->>日期、打开、关闭、关闭、音量、关闭

数组行将具有如上所述的每行,每行有6列数据。我不知道如何将其插入sql表中?我知道如何插入到sql表中,但从这个数组结构中不知道如何插入到sql表中。有人知道如何用这种结构插入每一行数千个字符吗


提前谢谢

根据您的SQL server技术,这可能适用于:

SQL特性(自SQL-92以来)是使用行值构造函数在单个SQL语句中一次插入多行:

DB2、SQL Server(自版本10.0-ie.2008起)、PostgreSQL(自版本8.2起)、MySQL和H2支持此功能


    • 最有效的方法是使用

      这种方法的唯一问题是,您必须将数据投影到DataTable、DataRow[]等中。为了使用SqlBulkCopy,我将“大容量插入”理解为
      SqlBulkCopy
      。使用
      SqlBulkCopy
      有两种方法。第一种方法是将数据预处理到
      数据表中。这很简单,但只适用于小型到中型数据,因为需要先将所有数据缓冲到
      数据表

      第二个是创建一个
      IDataReader
      ;这是一个流式API,因此可用于仅转发的大型数据源(如海量日志文件)。我编写了一个
      SimpleDataReader
      ,您可以看到(忽略xml;关注用法),我在一些地方使用了它。它工作得很好;你所做的就是:

      • 在构造函数中,告诉基构造函数列的类型
      • DoRead
        中,尝试读取下一行(可能是文本读取器上的
        ReadLine
        ),调用
        SetValues
        并返回
        true
        ,如果没有更多数据,则返回
        false
      • 覆盖
        DoClose
        如果您想在数据被使用后清理任何内容(可能关闭文件)

      实际上,您也可以实现IDataReader,这在许多情况下效率更高,因为如果您的内存中已经有其他形式的数据,则不需要在表中加载这些数据。@Josh Einstein,创建一个IDataReader来解释传入的逗号分隔列表,这一点很好。
      INSERT INTO ''TABLE'' (''column-a'', [''column-b, ... '']) 
      VALUES (''value-1a'', [''value-1b, ...'']), 
             (''value-2a'', [''value-2b, ...'']), 
             ...