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。]
我知道可能是数据库联接错了,可到底那里错了???十万火急阿!!
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。]
我知道可能是数据库联接错了,可到底那里错了???十万火急阿!!
By Marcos Meli
http://www.codeproject.com/useritems/filehelpers.asp
啊,哪个问题我现在解决了,改成这样:
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文件的列数每次都不一样,这样插入数据后我依据什么来查询呢?
可是为什么编译器说我的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+"')";
C:\Inetpub\wwwroot\CsvOutPut\WebForm1.aspx.cs(116): 无法识别的转义序列