string strpath = File1.PostedFile.FileName.ToString();
string strConn = "Data Source=zhy;UID=sa;Password=718718;database=csv";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
string strSql = "insert into ctable select * from openrowset('Microsoft.Jet.OLEDB.4.0','Extended Properties=Text;HDR=Yes;FMT=Delimited','Data Source="+strpath+"')";
SqlCommand cmd = new SqlCommand(strSql,conn);
cmd.ExecuteNonQuery();
然后就一直抱错:OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。 [OLE/DB provider returned message: 找不到可安装的 ISAM。] 
我知道可能是数据库联接错了,可到底那里错了???十万火急阿!!

解决方案 »

  1.   

    FileHelpers v1.4.0 - An Automatic File Import/Export Framework
    By Marcos Meli
    http://www.codeproject.com/useritems/filehelpers.asp
      

  2.   

    csv 如果量大的话,这么倒就死机了......我们的解决方案是先换行,然后分成单个数组,几个insert组成一个sql 一起执行 我们要处理的csv行数通常在4,5w左右
      

  3.   

    我的量目前还没有那么大,我现在只需要做好这个功能就行。
    啊,哪个问题我现在解决了,改成这样:
    INSERT INTO ctable
    SELECT *
    FROM OPENROWSET('MSDASQL', 
          'Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=d:\;Extensions=CSV;', 
          'SELECT * FROM test.csv') Rowset_1可是现在不能插入到ctable表里,还有,如果我的csv文件的列数每次都不一样,这样插入数据后我依据什么来查询呢?
      

  4.   

    //如果我的csv文件的列数每次都不一样,这样插入数据后我依据什么来查询呢?那就出错了.....
      

  5.   

    那我在建立数据库的时候如何建立字段呢?根据csv文件的列么?
      

  6.   

    啊,我了解了
    可是为什么编译器说我的SQL有错误?我在SqlServer里都可以正常添加的阿!
    我的SQL:
    string strpath = File1.PostedFile.FileName.ToString();
    string strSql = "INSERT INTO ctable SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=CSV;','SELECT * FROM "+strpath+"')";
      

  7.   

    INSERT INTO ctable SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=CSV;','SELECT * FROM D:\Book2.csv')我晕!!这句话那里错了阿???
    C:\Inetpub\wwwroot\CsvOutPut\WebForm1.aspx.cs(116): 无法识别的转义序列