你先用System.IO.File.Exists()检查一下文件是否存在, csv要看看是不是格式良好的, 下面是打开csv的源程序 这个地方你要注意, path是csv的目录的全名 fileName是csv的名称,不包括前面的路径 public bool ImportOutlooExpByOleDB(string path , string fileName ) { string cs = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + @";Extended Properties=""text;HDR=Yes;FMT=Delimited""" ; System.Data.OleDb .OleDbConnection con = new System.Data.OleDb.OleDbConnection(cs) ; con.Open() ; try { string sql = String.Format("SELECT * FROM [{0}] ",fileName) ; System.Data.DataSet ds = new System.Data.DataSet() ; System.Data.OleDb.OleDbDataAdapter ada = new System.Data.OleDb.OleDbDataAdapter(sql , con) ; ada.Fill(ds , fileName) ;这时候路径充当的是数据库 文件名充当的是表,不要搞错了
调试好一会还是有错误: 'E:\profile\SD\20060707.CSV' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides. 查不出原因,还得请你帮忙~~,请你帮分析一下,还会有什么原因!^_^
年限:2年
技術:.Net BS开发
工資:avg>>5K + 福利,几乎不加班,工作开心,心情愉快。
公司性質:汽车门户网站。 PS: 透露点消息,我们公司正在招.net BS开发人员,如果哪位同仁想换工作,是一个不错的机会选择,加[email protected] 说应聘即可!
2. 直接使用SQLSERVER的DTS,有专门的对CSV文件的驱动的,使用数据导出导入向导,非常容易完成这个操作
string Strconn=" Provider=Microsoft.Jet.OLEDB.4.0;Driver={Microsoft Text Driver (*.csv)}; Dbq="+file+";Extensions=csv;FMT=TabDelimited";
OleDbConnection objConn = new OleDbConnection(Strconn);
string strName = inputFile.PostedFile.FileName;
int intExt = strName.LastIndexOf("\\");
string name = strName.Substring(intExt+1);
string strSql ="Select [Date & Time] as DT,[0.3um] as tzhi,[0.5um] as Fzhi,[5.0um] as Zzhi From "+name;
OleDbCommand cmd = new OleDbCommand(strSql,objConn);
OleDbDataAdapter dad = new OleDbDataAdapter(strSql,objConn);
DataSet dst = new DataSet();
try
{
dad.Fill(dst,"test");
DataGrid1.DataSource = dst;
DataGrid1.DataBind();
}
catch(Exception Exc)
{
Response.Write(Exc.ToString().Split('。')[0]);
}
用这个连接字符串吧,应该可以的,当年我用来读取Outlook和OE的联系人
不过这种事情比较繁琐,
你要比对CSV的列SQl的列,
我的做法是,
1)读取CSV,
2)确定CSV每个字段和SQL的字段的对应关系,用整数表示,
这一步是最繁琐的
而且调用也比较复杂,还真没办法直接给你,
不过思路已经给你了,如果你的csv可以保证列顺序总是正确的,第二步可以简化很多,
你就按照一个固定的顺序读取每列的数据就可以了,不过这样感觉不保险
System.Data.OleDb.OleDbException: 'C:\Documents and Settings\Desktop\20060707.CSV' is not a valid path.
csv要看看是不是格式良好的,
下面是打开csv的源程序
这个地方你要注意,
path是csv的目录的全名
fileName是csv的名称,不包括前面的路径
public bool ImportOutlooExpByOleDB(string path , string fileName )
{
string cs = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + @";Extended Properties=""text;HDR=Yes;FMT=Delimited""" ;
System.Data.OleDb .OleDbConnection con = new System.Data.OleDb.OleDbConnection(cs) ;
con.Open() ;
try
{
string sql = String.Format("SELECT * FROM [{0}] ",fileName) ;
System.Data.DataSet ds = new System.Data.DataSet() ;
System.Data.OleDb.OleDbDataAdapter ada = new System.Data.OleDb.OleDbDataAdapter(sql , con) ;
ada.Fill(ds , fileName) ;这时候路径充当的是数据库
文件名充当的是表,不要搞错了
'E:\profile\SD\20060707.CSV' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
查不出原因,还得请你帮忙~~,请你帮分析一下,还会有什么原因!^_^
第一个参数应该是E:\profile\SD\(看看最后是否有下划线)
第二个参数应该是20060707.CSV,
你知道什么原因吗?